【问题标题】:Adding noise to a sound为声音添加噪音
【发布时间】:2020-12-15 20:49:28
【问题描述】:

我有一个信号,它有一个数组 c(500000 x 2),有两个通道和一个频率 fs。 我想在声音的第一个通道中添加高斯声音。我已经创建了一个向量并创建了一个高斯声音

p=zeros(500000,1);
f=awgn(p,30);
sound(f,fs) ;

,播放带有高斯噪声的声音。 我现在想把噪音 (f) 放到声音的第一个通道。 我是 matlab 新手,所以我尝试了 awgn 函数

c1=awgn(f/2,30);

但它不起作用。 有什么建议吗??

【问题讨论】:

  • 哪一部分似乎不起作用?您的第一个代码块看起来很完美。只要您定义了fs,它现在就会播放f,即带有高斯噪声的p

标签: matlab


【解决方案1】:

awgn() 返回添加了高斯白噪声的原始信号

您似乎已经在第一步中添加了高斯噪声。这是一个脚本,您可以使用它来测试加性高斯白噪声 (AWGN) 如何影响音频。在这里,您会听到awgn() 返回添加了噪声的音频信号。通过使用Signal_To_Noise_Ratio,您将能够听到或多或少的原始音频,因为大量噪声会扭曲/阻碍信号。使用命令clear sound 结束播放您选择的音频文件/信号。

File_Name = "Audio.mp3";
Audio = audioread(File_Name);

Original_Signal = Audio(:,1);
Signal_To_Noise_Ratio = 20;

Noisy_Signal = awgn(Original_Signal,Signal_To_Noise_Ratio);

%Playing back at the sampling frequency, Fs%
Fs = 44100;
sound(Noisy_Signal,Fs);

将高斯噪声应用于微不足道的直流信号:

下面显示了对恒定等于 1 的直流信号应用加性高斯白噪声的结果。awgn() 函数的输出是在顶部添加了噪声的信号。

Original_Signal = ones(1,100);
Signal_To_Noise_Ratio = 20;

Noisy_Signal = awgn(Original_Signal,Signal_To_Noise_Ratio);

plot(Original_Signal);
hold on
plot(Noisy_Signal);
title("Applying Gaussian Noise with SNR = " + num2str(Signal_To_Noise_Ratio));
legend("Original Signal","Noisy Signal");

使用 MATLAB R2019b 运行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 2015-10-01
    • 2011-05-05
    • 2021-05-13
    • 2014-02-05
    相关资源
    最近更新 更多