在MATLAB

时间:2016-11-06 00:53:48

标签: matlab fft speech sine

我有一个语音文件,我试图在这个语音样本中添加一个频率为300 Hz的正弦波,其代码如下:

% Add sine wave to speech signal
clear all; close all;
load spf2.mat;
% sound(speech)
pxx= pwelch(speech);
plot(pxx);
xlim([0 500]);
F0 = 300; %hz
Fs = 8000;                   % samples per second
dt = 1/Fs;                   % seconds per sample
StopTime = 2.74775;          % seconds
t = (0:dt:StopTime-dt)';     % seconds
y = sin(2*pi*F0*t);
newspeech = speech + y;
sound(newspeech)
pxx= pwelch(newspeech);
figure
plot(pxx);
xlim([0 500]);

但是,这似乎没有正确添加到我的信号中。

原始信号的功率谱和'newspeech'的功率谱(应包含原始语音和正弦波)完全相同!

Image 1: Power spectrum of original speech file from 0 to 500 hz
图1:原始语音文件的功率谱从0到500 Hz

Image 2: power spectrum of new speech signal from 0 to 500 hz
图2:0到500 Hz的新语音信号的功率谱

请让我知道我哪里出错。

1 个答案:

答案 0 :(得分:2)

你有一个缩放问题,这就是正弦曲线的力量:

pwelch of sinusoid

音频信号的峰值功率为~1E8