matlab 正弦信号加噪声过低通滤波器

源代码:

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;

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值