池恩倬 2024-05-31 08:49 采纳率: 50%
浏览 6
已结题

【MATLAB】FIR数字滤波器

设计一个滤波器,滤波嘈杂环境音,保留人声,保留相应的频谱图,能整的可以联系我

img

  • 写回答

8条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-05-31 08:49
    关注

    引自免费微信小程序:皆我百晓生

    为了帮助您完成这个任务,我们首先需要编写一些MATLAB代码来实现音频的读取、显示波形图、计算频谱以及设计和应用FIR滤波器。下面是一个详细的步骤指南。

    第一步:读取音频 首先,我们需要从.wav文件中读取音频数据。使用audioread函数可以实现这一目标。这里提供一个简单的例子:

    % 读取音频文件
    [signal, fs] = audioread('quiet_room_recording.wav'); % 将'quiet_room_recording.wav'替换为您实际的文件名
    
    % 显示音频数据长度和采样率
    disp(['Signal length: ', num2str(length(signal)), ' samples']);
    disp(['Sampling frequency: ', num2str(fs), ' Hz']);
    

    第二步:绘制波形图 接下来,我们可以使用plot函数绘制音频信号的波形图。

    % 绘制波形图
    t = (0:length(signal)-1)/fs; % 计算时间轴
    figure;
    plot(t, signal);
    xlabel('Time (s)');
    ylabel('Amplitude');
    title('Quiet Room Recording Waveform');
    grid on;
    

    第三步:计算频谱 使用periodogram函数计算信号的频谱。

    % 计算频谱
    [Pxx, f] = periodogram(signal, hamming(length(signal)), [], fs); % 使用汉明窗进行窗函数处理
    
    % 绘制频谱图
    figure;
    plot(f, 10*log10(Pxx));
    xlabel('Frequency (Hz)');
    ylabel('Power/Frequency (dB/Hz)');
    title('Quiet Room Recording Spectrum');
    grid on;
    

    第四步:设计FIR滤波器 设计一个低通滤波器,用于过滤高频噪声,保留人声频段。假设人声主要集中在80Hz到3500Hz之间。使用fir1函数创建一个线性相位FIR滤波器。

    % 设计滤波器
    cutoff_freq = [80 3500]; % 频率范围
    order = 100; % 滤波器阶数
    firlowpass = fir1(order, cutoff_freq/(fs/2)); % 创建低通滤波器
    
    % 应用滤波器
    filtered_signal = filter(firlowpass, 1, signal);
    

    第五步:滤波后的波形图和频谱 重复第二步和第三步,分别绘制滤波后的波形图和频谱图。

    % 绘制滤波后波形图
    figure;
    plot(t, filtered_signal);
    xlabel('Time (s)');
    ylabel('Amplitude');
    title('Filtered Signal Waveform');
    grid on;
    
    % 计算滤波后频谱
    Pxx_filtered, f_filtered = periodogram(filtered_signal, hamming(length(filtered_signal)), [], fs);
    
    % 绘制滤波后频谱图
    figure;
    plot(f_filtered, 10*log10(Pxx_filtered));
    xlabel('Frequency (Hz)');
    ylabel('Power/Frequency (dB/Hz)');
    title('Filtered Signal Spectrum');
    grid on;
    

    将上述代码放入单独的.m文件中运行,就可以得到所需的波形图和频谱图。然后,根据您的实际需求调整滤波器参数,以优化噪音抑制效果。最后,记得将生成的音频文件、代码和报告整理成指定格式提交。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 6月8日
  • 已采纳回答 5月31日
  • 创建了问题 5月31日