基于凯泽窗的FIR数字滤波降噪方案

发布时间:2026/10/12 3:49:16
基于凯泽窗的FIR数字滤波降噪方案
[signal, fs] audioread(audio_file.wav); % 添加随机噪声 noisy_signal signal 0.1 * randn(size(signal)); % 计算频谱 N length(noisy_signal); f (0:N-1) * fs / N; noisy_fft abs(fft(noisy_signal)) / N; % 设计FIR滤波器以凯泽窗为例 N_fir 50; % 滤波器阶数 beta 8; % 凯泽窗参数 window kaiser(N_fir, beta); b fir1(N_fir, 0.2, window); % 0.2为归一化截止频率 % 应用滤波器 filtered_signal filter(b, 1, noisy_signal); % 绘制时域波形 figure; subplot(3, 1, 1); plot(noisy_signal); title(含噪声的音频信号时域波形); xlabel(样本点); ylabel(幅值); subplot(3, 1, 2); plot(filtered_signal); title(滤波后的音频信号时域波形); xlabel(样本点); ylabel(幅值); % 绘制频域波形 subplot(3, 1, 3); plot(f, noisy_fft); title(含噪声的音频信号频域波形); xlabel(频率 (Hz)); ylabel(幅度);步骤描述1使用audioread读取音频文件2添加随机噪声使用randn生成高斯白噪声3使用fft计算音频信号的频谱4使用kaiser设计凯泽窗函数5使用fir1设计FIR滤波器6使用filter应用滤波器去除噪声7绘制原始和滤波后的音频信号时域波形8绘制原始音频信号的频域波形参考来源使用数字滤波器处理音频噪声附Matlab程序数字信号处理课程设计资源MATLAB数字降噪处理重邮数字信号处理实验七用 MATLAB 设计 IIR 数字滤波器matlab给音频信号加噪并设计IIR滤波器滤去噪声更新源码数字信号处理音频FIR去噪滤波器基于MATLAB GUI的开发