【音频处理】在规定的信噪比水平上向信号添加噪声(Matlab实现)

  💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

在规定的信噪比水平上向信号添加噪声是一种常见的信号处理技术,常用于模拟实验、仿真和通信系统中。这种技术可以模拟真实世界中信号传输过程中的噪声干扰,以评估系统的性能或测试算法的鲁棒性。首先需要确定待处理的信号类型,例如音频、图像或视频信号。然后,选择适当类型的噪声,常见的噪声类型包括高斯白噪声、脉冲噪声、均匀噪声等。信噪比是衡量信号与噪声之间相对强度的指标。在添加噪声之前,需要确定所需的信噪比水平,这决定了信号与噪声之间的相对能量。将生成的噪声信号与原始信号相加,以在所需的信噪比水平上模拟噪声的影响。这通常通过简单的加法操作来实现。通过在指定的信噪比水平上向信号添加噪声,可以更好地理解信号处理系统在实际环境中的表现,并评估系统在噪声环境下的鲁棒性和性能。

📚2 运行结果

主函数部分代码:

% TEST_ADDNOISE_SINUSOID Speech signal demo for ADDNOISE routine.
%
%   See also ADDNOISE, TEST_ADDNOISE_SINUSOID.

clear all; close all; clc; randn('seed',0); rand('seed',0); fprintf('.\n');


    % inline function for SNR calculation
    SNRdB = @(s,n)( 10*log10(sum(s(:).^2)/sum((n(:)-s(:)).^2)) ); 

    % read target and masker samples from files
    [ speech, fs ] = audioread( 'sp10.wav' );
    [ noise, fs ] = audioread( 'ssn.wav' );

    % desired SNR level (dB)
    snr = 5; 

    % get mixture speech at a desired SNR level
    noisy = addnoise( speech, noise, snr );

    % compare true and desired SNRs
    fprintf( ' Desired SNR: %0.2f dB\n', snr );
    fprintf( 'Measured SNR: %0.2f dB\n', SNRdB(speech,noisy) );

    % generate time and frequency domain plots
    hfig = figure( 'Position', [10 30 550 400], ... 
        'PaperPositionMode', 'auto', 'Visible', 'on', 'color', 'w' ); 

    % plot time domain waveforms
    subplot( 2,1,1 ); hold on;
    myspectrogram( speech, fs, [18 1], @hanning, 1024, [-60 -2] );
    set( gca, 'ytick', [0:2000:fs/2], 'yticklabel', [0:2:round(0.5E-3*fs)] );
    xlabel( 'Time (s)' );
    ylabel( 'Frequency (kHz)' );

    % plot spectral magnitude responses
    subplot( 2,1,2 ); hold on;
    myspectrogram( noisy, fs, [18 1], @hanning, 1024, [-60 -2] );
    set( gca, 'ytick', [0:2000:fs/2], 'yticklabel', [0:2:round(0.5E-3*fs)] );
    xlabel( 'Time (s)' );
    ylabel( 'Frequency (kHz)' );

    % print figure to png
    print( '-dpng', sprintf('%s.png',mfilename) );


🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]林仁坤. 基于表面吹/吸气的高速磁浮列车气动噪声研究[D].五邑大学,2023.DOI:10.27376/d.cnki.gwydu.2023.000095.

[2]毛学锋.铁路钢桥的噪声与噪声控制[J].中国科技信息,2011(10):19+25.

🌈4 Matlab代码实现

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值