语音信号加密方法
发布网友
发布时间:2022-04-22 07:54
我来回答
共1个回答
热心网友
时间:2022-06-18 03:15
%单声道,能用
clear all
[x,fs,bits]=wavread('test2.wav');
%fs1=10000;
N=256; %窗长
nq=128; %帧移
M=N-nq;
f=[0:length(x)-1]'*fs/length(x); %频率
figure(1);
subplot(2,1,1);
plot(x); %原始语音信号的波形图
%plot(0:(length(x)-1)/fs,x);
%for i=1:2
x1=x(:,1); %第i列信号值
ham=hamming(N); %生成汉明窗
for j=1:floor((length(x)-N)/M+1) %帧的数量
x3=zeros(N,1);
x3=x1((j-1)*M+1:j*M+nq); %每一帧信号值
x0=zeros(N,1);
x3=x3.*ham; %加窗
x3=fft(x3); %每一帧进行fft变换
x0=zeros(N/2,1);
x0=x3(1:N/2);
x3(1:N/2)=x3(N/2+1:N);
x3(N/2+1:N)=x0;
x3=ifft(x3);
%if i==1
x2((j-1)*M+1:j*M+nq)=x3;
%else x4((j-1)*M+1:j*M+nq)=x3;
%end
end
%end
%x5=[x2' x4'];
x5=x2'; %原始信号x经分帧处理后,得到的新的信号值
%y2=ifft(x5);
subplot(2,1,2);
plot(x5);
title('新信号波形图')
y1=fft(x); %原始信号x的fft频谱
figure(2);
subplot(2,1,1);
plot(f(1:length(x)/2),abs(y1(1:length(x)/2)));
title('原始信号x的fft频谱')
y2=fft(x5);
subplot(2,1,2);
plot(f(1:length(x)/2),abs(y2(1:length(x)/2)));
title('变换后的FFT频谱图')
%sound(3*x5,fs);