📄 fdm2.m
字号:
clear;
FS=6e5; %采样率
t=0:1/FS:0.5; %采样时间
f1=1e5;f2=2e5; %f1和f2分别为两路高频载波
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%下面画出两路语音信号的频谱图%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[x1 fs nbits]=wavread('g:\yuyin\TDM\shengyin1_0.wav'); %第一路语音信号
N=length(x1); %采样点的点数
fx=fft(x1); %对信号进行快速傅立叶变换
dfx=fs/N; %频率分辨率,即频域图中两个点的最小间隔
n=0:N/2; %由于对称性,所以只取采样点数的一半进行快速傅立叶变换
f=n*dfx; %每个采样点所对应的频率值,也是频谱图的横坐标
figure(1);subplot(2,2,1);plot(f,abs(fx(n+1))*2/N);title('第一路信号'); %画出频谱图
xlabel('频率');
ylabel('幅度');
[x2 fs nbits]=wavread('g:\yuyin\TDM\shengyin1_1.wav'); %第二路语音信号
N=length(x2);
fx=fft(x2);
dfx=fs/N;
n=0:N/2;
f=n*dfx;
subplot(2,2,2);plot(f,abs(fx(n+1))*2/N);title('第二路信号');
xlabel('频率');
ylabel('幅度');
%%%%%%%%%%%%%%%%%%%%%%%%%%
%下面画出高频载波的频谱图%
%%%%%%%%%%%%%%%%%%%%%%%%%%
x11=sin(2*pi*f1*t); %第一路高频载波
N=length(x11);
fx=fft(x11);
dfx=FS/N;
n=0:N/2;
f=n*dfx;
subplot(223);plot(f,abs(fx(n+1))*2/N);title('第一路高频载波');
xlabel('频率');
ylabel('幅度');
x22=sin(2*pi*f2*t); %第二路高频载波
N=length(x22);
fx=fft(x22);
dfx=FS/N;
n=0:N/2;
f=n*dfx;
subplot(2,2,4);plot(f,abs(fx(n+1))*2/N);title('第二路高频载波');
xlabel('频率');
ylabel('幅度');
%%%%%%%%%%%%%%%%%%%%%%%%%%
%%以下为信道中传输的信号%%
%%%%%%%%%%%%%%%%%%%%%%%%%%
x=(x1(1:18000))'.*x11(1:18000)+(x2(1:18000))'.*x22(1:18000); %将四路信号分别调到高频后合并,并进行快速傅立叶变换,画出频谱图
N=length(x);
fx=fft(x);
dfx=FS/N;
n=0:N/2;
f=n*dfx;
%subplot(3,3,5);plot(f,abs(fx(n+1)));title('信道中传输的信号');
figure(2);plot(f,abs(fx(n+1))*2/N);title('信道中传输的信号');
xlabel('频率');
ylabel('幅度');
%%%%%%%%%%%%%%%%%%%%%%%%%%
%%以下程序为接收端的解调%%
%%%%%%%%%%%%%%%%%%%%%%%%%%
Wp1=[0.6e5 1.4e5]/(FS/2);Ws1=[0.5e5 1.5e5]/(FS/2); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Rp=1;Rs=15; %%设计通带截止频率为0.6e5-1.4e5Hz,阻带截%%
[N1, Wn1] = BUTTORD(Wp1, Ws1, Rp, Rs); %%止频率为0.5e5-1.5e5Hz,通带最大衰减为1db%%
[B1,A1] = butter(N1,Wn1,'bandpass'); %%阻带最小衰减为15d b的巴特沃斯滤波器%%%%%%
Y1 = filter(B1,A1,x); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N=length(Y1); %画出经过滤波器后的第一路高频载波
fx=fft(Y1);
dfx=FS/N;
n=0:N/2;
f=n*dfx;
figure(3);subplot(2,2,1);plot(f,abs(fx(n+1))*2/N);title('滤波器滤出的第一路高频载波');
xlabel('频率');
ylabel('幅度');
Wp2=[1.6e5 2.4e5]/(FS/2);Ws2=[1.5e5 2.5e5]/(FS/2); %以同样的方法设计第二个带通滤波器
[N2, Wn2] = BUTTORD(Wp2, Ws2, Rp, Rs);
[B2,A2] = butter(N2,Wn2,'bandpass');
Y2 = filter(B2,A2,x);
N=length(Y2); %画出经过滤波器后的第二路高频载波
fx=fft(Y2);
dfx=FS/N;
n=0:N/2;
f=n*dfx;
subplot(2,2,2);plot(f,abs(fx(n+1))*2/N);title('滤波器滤出的第二路高频载波');
ylabel('幅度');
xlabel('频率');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%对滤出的四路高频信号进行相干%
%解调,然后画出他们的频谱图形%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Y11=Y1.*x11(1:18000); %对第一路高频载波信号进行相干解调
Wp3=0.4e5/(FS/2);Ws3=0.5e5/(FS/2); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[N3,Wn3]=BUTTORD(Wp3,Ws3,Rp,Rs); %%设计通带截止频率为0.4e5Hz,阻带截止%%
[B3,A3] = butter(N3,Wn3,'low'); %%频率为0.5e5Hz的巴特沃斯低通滤波器%%%
X1=2*filter(B3,A3,Y11); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N=length(X1); %画出经过低通滤波器后解调出的第一路信号
fx=fft(X1);
dfx=FS/N;
n=0:N/2;
f=n*dfx;
subplot(2,2,3);plot(f,abs(fx(n+1))*2/N);title('经过低通后恢复的第一路语音信号');
xlabel('频率');
ylabel('幅度');
Y22=Y2.*x22(1:18000); %对第一路高频载波信号进行相干解调
X2=2*filter(B3,A3,Y22);
N=length(X2); %画出经过低通滤波器后解调出的第一路信号
fx=fft(X2);
dfx=FS/N;
n=0:N/2;
f=n*dfx;
subplot(2,2,4);plot(f,abs(fx(n+1))*2/N);title('经过低通后恢复的第二路语音信号');
xlabel('频率');
ylabel('幅度');
wavwrite(X1,fs,nbits,'g:\yuyin\FDM\shengyin2_0.wav');%生成解调后的语音文件
wavwrite(X2,fs,nbits,'g:\yuyin\FDM\shengyin2_1.wav');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -