⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fsk.txt

📁 一个关于FSK的matlab编写的小程序
💻 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 + -