声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 919|回复: 0

[编程技巧] 频率调制FSK的伪随机码,相关峰不是应该很窄吗?

[复制链接]
发表于 2008-6-15 22:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
这个程序是这样的,先产生伪随机码,之后把码调制在两个频率的信号上,没考虑相位的连续性。按道理伪随机码应该相关峰很窄啊,可是从图中看却不是这样,这是怎么回事?
另外,我也用这个伪随机码,用相位调制单频信号,则能得到很窄的相关峰。
请帮忙看看,是不是程序中频率调制那段(蓝色)是不是错了?谢谢!


%-- mseq 为输出01二进制码 ---%
fbconnection = [0 1 0 0 1 ] ; n = length(fbconnection) ; N = 2^n - 1 ;% n级码 码数N
register = [zeros(1 ,n - 1) 1 ] ; %定义移位寄存器的初始状态
mseq(1) = register(n) ; newregister = zeros(1,n);
for i = 2:N, newregister(1) = mod(sum(fbconnection.*register),2);
    for k = 2 :n, newregister(k) = register(k - 1) ; end
    register = newregister ; mseq(i) = register(n) ;
end
aa = xcorr(mseq); figure,plot(aa);
%--- 0 -> -1 ---%
for n=1:length(mseq)
     if mseq(n)==0, mseq(n)=-1; end
end
%--- 载波信号 ---%
f01 =500; f02 =1000; delta_f=20;% 带宽
Ts=1/delta_f;%码元宽度
T_sig = N*Ts; fs = 10*max(f01,f02); t = [0:N*round(Ts*fs)-1]/fs;
y1 = sin(2*pi*f01*t); y2 = sin(2*pi*f02*t);
%--- 频率调制 ---%
N_Ts=Ts*fs;% 单个码元宽度具有的离散点数
a=ones(1,round(N_Ts));
for n=0:N-1
    pn(n*round(N_Ts)+1:(n+1)*round(N_Ts))=a*mseq(n+1);% 小蓝脸那是个冒号
end
for n = 1:length(pn)
    if pn(n)==1, output(n) = y1(n); end
    if pn(n)==-1, output(n) = y2(n); end
end

%--- 显示 ---%
figure,subplot(2,1,1); plot(t,output);
N_fft = fs; f_axis = [1:N_fft]*fs/N_fft;
subplot(212); plot(f_axis,abs(fft(output,N_fft)));
[xg,lags] = xcorr(output); figure(4),plot(lags/fs,xg);title('自相关');

[ 本帖最后由 ChaChing 于 2010-1-12 10:11 编辑 ]
未命名.JPG
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-18 00:44 , Processed in 0.057892 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表