ASK调制
%ASK調制?
?
code_end1=[1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0];?
% 調制參數?
CodeFre = 6.4*10^4; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? %碼速率 ? 64kbps?
Tc ? ? ?= 1/CodeFre; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?%碼元寬度?
CarrFre = 100*10^3; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? %載波頻率 100KHz?
SamFre ?= 6.4*10^5; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? %采樣頻率 640KHz?
Ts ? ? ?= 1/SamFre; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? % 采樣時間間隔?
?
Temp ? ?= fix(SamFre/CodeFre); ? ? ? ? ? ? ? ? ? ? ?% 平均每個碼元寬度內采樣點個數?
%Reminder= SamFre/CodeFre - fix(SamFre/CodeFre); ? ?% 得到小數,從而確定每個碼元起始采樣點的偏移量?
%Offset ?= 1-Reminder; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?% 得到下一碼元起始處時間偏移?
num ? ? = length(code_end1); ? ? ? ? ? ? ? ? ? ? ? ?% 取碼序列的長度?
?
% ASK調制?
switch code_end1(1)?
? ? case 0?
? ? ? ? a=0;?
? ? case 1?
? ? ? ? a=1;?
end ??
t = Ts :Ts: Temp*Ts;?
ASK_u1= a*cos(2*pi*CarrFre*t);?
SamLen = length(ASK_u1);?
NewOffset = Tc-Ts*Temp;?
for n = 2:num;?
% ? ?判斷載波相位變化?
? ?switch code_end1(n)?
? ? ? ?case 0?
? ? ? ? ? ?a=0;?
? ? ? ?case 1?
? ? ? ? ? ?a=1;?
? ?end ??
? ?N=(NewOffset+Tc)/Ts;?
? ?Temp = fix(N);?
? ?t =Ts*(SamLen+1) :Ts: Ts*(Temp+SamLen); %時間長度?
? ?%m=1:Temp;?
? ?%c=[c,cos(2*pi*CarrFre*t)];?
? ?S=a*cos(2*pi*CarrFre*t);?
? ?ASK_u1 =[ASK_u1,S];?
? ?SamLen = length(ASK_u1);?
? ?%NewReminder =N-Temp;?
? ?NewOffset = n*Tc-Ts*SamLen;?
? ?% ? ?end?
? ?n?
end
figure (1)
m=length(ASK_u1);
subplot(2,1,1)
plot(1:m,ASK_u1)
subplot(2,1,2)
FS=abs(fft(ASK_u1,128));
f=(0:(128-1))'*SamFre/128;
plot(f(1:64),FS(1:64))
?
總結
- 上一篇: MySQL多项模糊查询
- 下一篇: SpringMVC请求流程