源代码:
clear ;
clc;
size = (2048000/16000)*10;
n = 0:size-1;
figure(1);
%% 生成采样率为2048 速率为16的正弦信号
fs = 2048000; % 采样率为2048Hz
f0 = 16000;
t = 0:1/fs:(size-1)/fs;
xn = sin(2*pi*f0*t);
subplot(321);stem(n,xn,'.');
xlabel('n');ylabel('xn(n)');title('一个周期的正弦信号');
%% 正弦信号加噪声
wn = rand(1,size) * 0.2;
xnNosi = xn + wn;
subplot(322);stem(n,xnNosi,'.');
xlabel('n');ylabel('xnNosi(n)');title('带噪声正弦信号');
%% 设计巴特沃斯低通滤波器
N = 8; % 阶数
fs = 2048000; % 采样率
fc = 22000; % 截止频率
[b,a] = butter(N, fc/(fs/2), 'low');
%%%信号滤波
filtered_signal = filter(b,a, xnNosi);
subplot(323);stem(n,filtered_signal,'.');
xlabel('n');ylabel('filtered_signal(n)');title('正弦信号加噪声后低通滤波');
%%%查看频谱
xn_fft = abs(fft(xn));
subplot(324);stem(n,xn_fft,'.');
xlabel('n');ylabel('xn_fft(n)');title('正弦波的信号频谱');
%%%查看频谱
xnNosi_fft = abs(fft(xnNosi));
subplot(325);stem(n,xnNosi_fft,'.');
xlabel('n');ylabel('xnNosi_fft(n)');title('正弦波加噪声的信号频谱');
%%%滤波后信号的频谱
filtered_fft = abs(fft(filtered_signal));
subplot(326);stem(n,filtered_fft,'.');
xlabel('n');ylabel('filtered_fft(n)');title('正弦波加噪声滤波后信号频谱');
y = 0;