核心内容摘要
è·¨è¶
MATLAB 数字信号处理 滤波器 低通滤波器 巴特沃斯滤波器 fir滤波器 iir滤波器 信号与系统 通信原理 相关实验和仿真 模拟系统调制解调仿真音频信号处理 脉冲压缩技术 GUI界面设计低通高通带通滤波器matlab 通信原理 信号的调制解调 AM调制解调 FM调制解调 基带信号调制 余弦滚降 数字信号处理 matlab仿真 通信原理仿真 OOK 2pSK BPSK
噪声信号的频谱分析。
设计数字滤波器和画出频率响应。
利用窗函数和最佳逼近的方法设计FIR滤波器最后利用MATLAB中的函数freqz画出各滤波器的频率响应。
用滤波器对噪声图像进行滤波。
比较几种滤波器去滤波前后噪声图像的波形及频谱。
先来点刺激的——生成白噪声并看它的频谱。
MATLAB里造噪声就跟炒菜放盐一样简单fs 1000; % 采样率 t 0:1/fs:1; noise
5*randn(size(t)); % 高斯白噪声 figure subplot(2,1,
plot(t,noise) title(时域波形) N length(noise); f (-N/2:N/2-
*(fs/N); subplot(2,1,
plot(f, 20*log10(fftshift(abs(fft(noise))))) title(频域特性)这段代码里的骚操作fftshift把负频率部分移到左边20*log10转换成dB值显示。
跑完就能看到噪声信号在全频带均匀分布的经典特征。
FIR滤波器设计实战咱们用汉明窗和最小二乘法两种姿势搞起。
窗函数法适合快速实现fc 100; % 截止频率 order 50; b fir1(order, fc/(fs/
, low, hamming(order
); freqz(b,1,1024,fs)fir1的第三个参数要是归一化频率这里用采样率的一半做分母。
想提升阻带衰减试试切比雪夫逼近b firpm(order, [0
15
25 1], [1 1 0 0], [1 2]); freqz(b,1,1024,fs)这个设计参数里的[1 2]权重分配让通带波动比阻带小一半。
跑出来的频率响应曲线明显比窗函数法的过渡带更陡峭。
IIR滤波器也不能少巴特沃斯是经典选择[b,a] butter(4, fc/(fs/
, low); freqz(b,a,1024,fs)四阶巴特沃斯的相频特性明显非线性这点在时域滤波时会产生相位失真。
不过计算量比FIR小得多适合实时处理。
MATLAB 数字信号处理 滤波器 低通滤波器 巴特沃斯滤波器 fir滤波器 iir滤波器 信号与系统 通信原理 相关实验和仿真 模拟系统调制解调仿真音频信号处理 脉冲压缩技术 GUI界面设计低通高通带通滤波器matlab 通信原理 信号的调制解调 AM调制解调 FM调制解调 基带信号调制 余弦滚降 数字信号处理 matlab仿真 通信原理仿真 OOK 2pSK BPSK
噪声信号的频谱分析。
设计数字滤波器和画出频率响应。
利用窗函数和最佳逼近的方法设计FIR滤波器最后利用MATLAB中的函数freqz画出各滤波器的频率响应。
用滤波器对噪声图像进行滤波。
比较几种滤波器去滤波前后噪声图像的波形及频谱。
图像降噪实战读入带椒盐噪声的图片试试效果img im2double(imread(noisy_img.jpg)); h_fir ftrans2(b); % FIR系数转2D滤波器 img_fir imfilter(img, h_fir); h_iir ftrans2(b,a); % IIR系数转换 img_iir imfilter(img, h_iir);这里有个坑IIR滤波器可能会引起图像边界震荡记得用replicate选项处理边缘。
滤波后的PSNR值计算psnr_fir 10*log10(1/immse(img_fir, clean_img)); psnr_iir 10*log10(1/immse(img_iir, clean_img));数据对比显示FIR通常比同阶IIR高
dB但处理时间可能是IIR的两倍以上。
频谱对比神器把原始信号和滤波后信号做FFT叠加显示[Pxx_orig,f] pwelch(noise, 1024, 512, 1024, fs); Pxx_filt pwelch(filtered_sig, 1024, 512, 1024, fs); semilogy(f, Pxx_orig, f, Pxx_filt) legend(原始信号,滤波后)用pwelch做功率谱估计比直接FFT更平滑特别适合观察阻带衰减效果。
巴特沃斯滤波器在截止频率附近的膝盖曲线明显而FIR最小二乘法的阻带波纹会周期性波动。
GUI设计彩蛋做个交互式滤波器设计工具function update_filter() fc get(slider,Value); b fir1(50, fc/
; freqz(b,1,1024,1000,whole,ax
; % 实时显示滤波效果 y filter(b,1,noise); plot(ax2, y(1:
); end用uicontrol做个滑动条控制截止频率实现动态更新频率响应曲线和时域波形。
这种实时反馈对理解滤波器特性帮助极大比看静态图强十倍。
避坑指南FIR滤波器阶数选奇数可避免群延迟非整数IIR滤波用filtfilt实现零相位失真图像滤波前务必做边界扩展用fvtool工具可直接对比多个滤波器特性不同场景的选择策略实时系统首选IIR音视频处理用FIR图像处理可尝试中值滤波等非线性方法。
下次试试把FM调制信号混入噪声再用自适应滤波器来降噪那才是真功夫