📄 fsk.txt
字号:
%程序设计FSK的一些说明:
%1)在调制时,我人为的将用cos信号来表示一,注意解调时将cos信号变成二进制信号的一码。
%2)在接受端解调的时候,我采用的是将本地振荡信号延伸到与信号一样长后进行解调的。
clear all
close all
N=input('input N='); %控制产生N个序列
d=rand(1,N)>=0.5; %随机生成N个1,0序列
bits=[d,zeros(1,7-(length(d)-fix(length(d)/7)*7))];%将在不够指定位数添0,对信号进行7位扩展完成
datastream=[]; %这是信道编码
n=fix(length(bits)/7);
for k=1:n
temp=bits((k-1)*7+1:k*7);
datastream=[datastream,temp,rem(sum(temp),2)];
end %信道编码结束
t=linspace(0,0.001,80); %采用fsk进行信号调制
fc2=1000;
fc3=10000;
y2=cos(2*pi*fc2*t); %fc为调制频率
y3=cos(2*pi*fc3*t);
result=[]; %信号开始调制
for j=1:length(datastream);
if datastream(j)==1;
result=[result,datastream(j)*y2]; %信号调制结束
else
result=[result,1*y3];
end
end
figure(1)
plot(1:length(result),result),title('FSK调制后的波形'); %输出调制信号的波形,以便于进行与接收端的信号进行比较
resignal=awgn(result,30);
figure(2)
plot(1:length(resignal),resignal),title('FSK信号在信道中的波形图');
load num
signal1=filter(b1,1,resignal);%1000的带通
signal2=filter(l1,1,resignal);%1000的低通
signal3=filter(b2,1,resignal);%10000的带通
signal4=filter(h2,1,resignal);%10000的高通
figure(3)
plot(1:length(signal1),signal1),title('1000的带通');
figure(4)
plot(1:length(signal2),signal2),title('1000的低通');
figure(5)
plot(1:length(signal3),signal3),title('10000的带通');
figure(6)
plot(1:length(signal4),signal4),title('%10000的高通');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -