分析此代码运行结果:fs=1000; %设置采样频率 1k N=1024; %采样点数 n=0:N-1; t=0:1/fs:1-1/fs; %时间序列 f=n*fs/N; %频率序列 Signal_Original=sin(2*pi*200*t); %信号200Hz正弦波 Signal_Noise=sin(2*pi*50*t); %噪声50Hz正弦波 Mix_Signal=Signal_Original+Signal_Noise; %将信号Signal_Original和Signal_Original合成一个信号进行采样 subplot(221); plot(t, Mix_Signal); %绘制信号Mix_Signal的波形 xlabel('时间'); ylabel('幅值'); title('原始信号'); grid on; subplot(222); y=fft(Mix_Signal, N); %对信号 Mix_Signal做FFT plot(f,abs(y)); xlabel('频率/Hz'); ylabel('振幅'); title('原始信号FFT'); grid on; Window = chebwin(61, 25); %25db的切比雪夫窗 b = fir1(60, [0.25 0.6], Window); %120阶FIR低通滤波器,截止频率125Hz %y2= filter(b, 1, x); y2=filtfilt(b,1,Mix_Signal); %经过FIR滤波器后得到的信号 Ps=sum(Signal_Original.^2); %信号的总功率 Pu=sum((y2-Signal_Original).^2); %剩余噪声的功率 SNR=10*log10(Ps/Pu); %信噪比 y3=fft(y2, N); %经过FIR滤波器后得到的信号做FFT subplot(223); plot(f,abs(y3)); xlabel('频率/Hz'); ylabel('振幅'); title('滤波后信号FFT'); grid on; [H,F]=freqz(b,1,512); %通过fir1设计的FIR系统的频率响应 subplot(224); plot(F/pi,abs(H)); %绘制幅频响应 xlabel('归一化频率'); title(['Order=',int2str(30),' SNR=',num2str(SNR)]); grid on;
时间: 2024-03-19 15:40:25 浏览: 84
此代码的运行结果如下:
1. 设置采样频率为1kHz,采样点数为1024,时间序列为0到1秒,频率序列为0到999Hz。
2. 生成一个200Hz的正弦波和一个50Hz的正弦波,将它们相加得到一个信号Mix_Signal。
3. 绘制Mix_Signal的波形和FFT图,可以看到原始信号中有50Hz的噪声。
4. 设计一个120阶的FIR低通滤波器,截止频率为125Hz,经过滤波后得到的信号为y2。
5. 计算原始信号的总功率Ps和经过滤波后剩余噪声的功率Pu,计算信噪比SNR。
6. 绘制经过滤波后的信号y2的FFT图和FIR滤波器的幅频响应图。
图像如下所示:
其中,左上图是原始信号Mix_Signal的波形图;右上图是原始信号Mix_Signal的FFT图;左下图是经过FIR低通滤波器后得到的信号y2的FFT图;右下图是FIR低通滤波器的幅频响应图,其中Order=30表示FIR滤波器的阶数,SNR表示信噪比。
阅读全文