信号(语音|MATLAB信号处理——分解信号,双谱重构


编程分析幅度谱和相位谱在图像信号、语音信号中的作用。
一、图像信号
(1)原图像信号如下:
信号(语音|MATLAB信号处理——分解信号,双谱重构
文章图片

信号(语音|MATLAB信号处理——分解信号,双谱重构
文章图片

信号(语音|MATLAB信号处理——分解信号,双谱重构
文章图片



代码如下:

PA0=imread('大头儿子.jpg'); PB0=imread('狗.jpg'); PC0=imread('苹果.jpg'); %灰度处理 PA=rgb2gray(PA0); PB=rgb2gray(PB0); PC=rgb2gray(PC0); %调整为同一大小 [a,b]=size(PA); PB=imresize(PB,[a,b]); PC=imresize(PC,[a,b]); %傅里叶变换 PAf=fft2(double(PA)); PBf=fft2(double(PB)); PCf=fft2(double(PC)); % 获取幅度谱与相位谱 PAf_AM=abs(PAf); PBf_AM=abs(PBf); PCf_AM=abs(PCf); PAf_ph=angle(PAf); PBf_ph=angle(PBf); PCf_ph=angle(PCf); %改变图片的幅度与相位,重组图像 F1=PAf_AM.*cos(PBf_ph)+PAf_AM.*sin(PBf_ph).*1j; F2=PAf_AM.*cos(PCf_ph)+PAf_AM.*sin(PCf_ph).*1j; F3=PBf_AM.*cos(PAf_ph)+PBf_AM.*sin(PAf_ph).*1j; F4=PBf_AM.*cos(PCf_ph)+PBf_AM.*sin(PCf_ph).*1j; F5=PCf_AM.*cos(PAf_ph)+PCf_AM.*sin(PAf_ph).*1j; F6=PCf_AM.*cos(PBf_ph)+PCf_AM.*sin(PBf_ph).*1j; %傅里叶逆变换 P1=abs(ifft2(F1)); P2=abs(ifft2(F2)); P3=abs(ifft2(F3)); P4=abs(ifft2(F4)); P5=abs(ifft2(F5)); P6=abs(ifft2(F6)); %显示图像 figure(1) subplot(2,3,1); imshow(PA0,[]); title('A原图-大头儿子'); subplot(2,3,2); imshow(PB0,[]); title('B原图-狗'); subplot(2,3,3); imshow(PC0,[]); title('C原图-苹果'); subplot(2,3,4); imshow(PA,[]); title('A灰度图-大头儿子'); subplot(2,3,5); imshow(PB,[]); title('B灰度图-狗'); subplot(2,3,6); imshow(PC,[]); title('C灰度图-苹果'); figure(2) subplot(2,3,1); imshow(P1,[]); title('A幅度B相位'); subplot(2,3,2); imshow(P2,[]); title('A幅度C相位'); subplot(2,3,3); imshow(P3,[]); title('B幅度A相位'); subplot(2,3,4); imshow(P4,[]); title('B幅度C相位'); subplot(2,3,5); imshow(P5,[]); title('C幅度A相位'); subplot(2,3,6); imshow(P6,[]); title('C幅度B相位');

结果如下:
信号(语音|MATLAB信号处理——分解信号,双谱重构
文章图片


信号(语音|MATLAB信号处理——分解信号,双谱重构
文章图片

【信号(语音|MATLAB信号处理——分解信号,双谱重构】 (2)原图像信号如下:
信号(语音|MATLAB信号处理——分解信号,双谱重构
文章图片

代码如下:
clear all P0=imread('郁金香.jpg'); PA=rgb2gray(P0); %转换为灰度图 PAf=fft2(double(PA)/255); [a,b]=size(PAf); PAf_am=abs(PAf); PAf_ph=angle(PAf); PAf_am1=1000*ones(a,b); %幅度变为1 PAf_ph1=ones(a,b); %相位变为1 %重组图片 F1=PAf_am.*cos(PAf_ph1)+PAf_am.*sin(PAf_ph1).*1j; F2=PAf_am1.*cos(PAf_ph)+PAf_am1.*sin(PAf_ph).*1j; F3=PAf_am1.*cos(PAf_ph1)+PAf_am1.*sin(PAf_ph1).*1j; P1=abs(ifft2(F1)); P2=abs(ifft2(F2)); P3=abs(ifft2(F3)); figure(1) subplot(2,2,1); imshow(P0); title('原图'); subplot(2,2,2); imshow(PA); title('灰度图'); subplot(2,2,3); imshow(uint8(PAf_am),[]); title('幅度谱'); subplot(2,2,4); imshow(uint8(PAf_ph),[]); title('相位谱'); figure(2) subplot(2,2,1); imshow(P1,[]); title('幅度不变,相位为1'); subplot(2,2,2); imshow(P2,[]); title('幅度为1,相位不变'); subplot(2,2,3); imshow(P3,[]); title('幅度为1,相位为1');

处理后的结果为:
信号(语音|MATLAB信号处理——分解信号,双谱重构
文章图片

信号(语音|MATLAB信号处理——分解信号,双谱重构
文章图片

分析:
使用Matlab读取三张不同的图像信号,对图像信号进行傅里叶变换后分别获取三张图像的幅度谱与相位谱,分别用一张图像的幅度谱与另外两张图像的相位谱重组,重构为新的图片。图像信号交换幅度谱与相位谱后,图像显示的内容为来源于相位谱的图像的轮廓。
经过交换图像信号的相位谱与幅度谱之后,反变换之后得到的图像内容与其相位谱对应的图像一致,表明相位谱决定图像结构。而图像中的整体灰度分布的特性,如明暗、灰度的变化趋势等则在比较大的程度上取决于对应的幅度谱。因为幅度谱反应了图像整体上多个方向的频率分量的相对强度。
二、语音信号
代码如下:
clear all [x,fs]=audioread('我的录音.wav'); %sound(x,fs); x=double(x)/3000; N=length(x); %傅里叶变换 Vf=fft(x,N); [a,b]=size(Vf); Vf_am=abs(Vf); Vf_ph=angle(Vf); Vf_am1=5*ones(a,b); %幅度变为1 Vf_ph1=ones(a,b); %相位变为1 %重组语音信号 FN1=double(Vf_am1.*exp(1j*Vf_ph)); %幅度改变 FN2=double(Vf_am.*exp(1j*Vf_ph1)); %相位改变 FN3=double(Vf_am.*exp(-1j*Vf_ph)); %相位取共轭 FN4=double(Vf_am1.*exp(1j*Vf_ph1)); %幅度相位均改变 V1=real(ifft(FN1)); V2=real(ifft(FN2)).*3000; V3=real(ifft(FN3)).*3000; V4=real(ifft(FN4)).*3000; %播放改变后的语音信号 %sound(V1,fs); %sound(V2,fs); %sound(V3,fs); %sound(V4,fs); figure(1); subplot(1,3,1); plot(x); xlabel('时间'); ylabel('幅度'); title('原信号波形'); subplot(1,3,2); plot(Vf_am); xlabel('频率'); ylabel('幅度'); title('原信号幅值谱'); subplot(1,3,3); plot(Vf_ph); xlabel('频率'); ylabel('相位'); title('原信号相位谱'); figure(2) subplot(2,2,1); plot(V1); title('幅度为1,相位不变'); subplot(2,2,2); plot(V2); title('幅度不变,相位为1'); subplot(2,2,3); plot(V2); title('幅度不变,相位取共轭'); subplot(2,2,4); plot(V4); title('幅度相位均改变');

信号波形如下:
信号(语音|MATLAB信号处理——分解信号,双谱重构
文章图片

信号(语音|MATLAB信号处理——分解信号,双谱重构
文章图片

分析:
语音信号改变幅度谱与相位谱后,出现了下列变化:
①幅度谱值有1—5的过程中,语音信号的音量逐渐增大,清晰读逐渐增强;
②幅度谱无论为一定值,相位谱的值变为1后,听到的声音无法辨别;
③相位发转后,听到的声音无法辨别;
④幅度相位均改变后,无声音。
改变语音信号的幅度值后,语音信号的音量改变,语音信号的内容与原信号一致;改变语音信号的相位值后,语音信号的内容无法辨识,与原信号的内容差异很大。表明对于语音信号来说,幅度谱决定语音信号的音量大小,相位谱决定语音信号的内容。

    推荐阅读