MATLAB实现:20Hz方波信号处理与80-100Hz低通滤波实验

需积分: 9 4 下载量 129 浏览量 更新于2024-09-15 收藏 59KB DOC 举报
在数字信号处理实验中,我们将探讨如何使用MATLAB来实现一系列关键操作,包括信号生成、分析与滤波。首先,我们关注的是一个基本的实验任务:生成一个基频为20Hz的周期方波信号,并对其特性进行分析。 1. 信号生成与特性: - 该信号的周期可以通过公式计算得出,即周期 = 1/频率,因此周期为0.05秒。 - 用MATLAB代码`square(2*pi*20*t)`生成了幅度为±1、频率为20Hz的方波信号。 - 实验中,我们绘制了5个周期的波形,使用`plot(t,x)`命令,并确保了频率范围和轴值显示。 - 随后,通过快速傅立叶变换(FFT)`fft(xn,N)`计算了信号的幅度频谱图,`plot(fs(1:N/2),Xkl(1:N/2))`展示了频谱分布。 2. 频率特性分析: - 由于奈奎斯特准则,采样频率至少应为信号最高频率的两倍,即80Hz,以防止频谱混叠。 - 计算谱线间隔为20Hz,带宽为40Hz(等于基频的两倍)。 3. IIR/FIR低通滤波器设计: - 使用Butterworth滤波器设计,设置通带截止频率为80Hz,阻带截止频率为100Hz(原问题中的90Hz改为100Hz以满足滤波效果),要求通带纹波小于3dB,阻带衰减大于50dB。 - `butterord`函数用于确定滤波器阶次,`butter`函数生成滤波器系数,然后用`filter`函数进行滤波。 - 滤波后的信号通过`fft(y,N)`计算并绘制其幅度频谱图。 4. 结果可视化: - 用`freqz(b,a,N,Fs)`绘制了滤波器的频率响应图,显示滤波器在不同频率上的性能。 - 最后,`plot(t1,y)`展示了经过低通滤波后的方波信号波形,直观地显示出80Hz以上频率成分被滤除的效果。 这个实验案例提供了数字信号处理的基础实践,涵盖了信号生成、分析以及滤波器设计等核心概念,通过MATLAB工具实现了从理论到实践的过渡,帮助学生巩固了对数字信号处理的理解。