1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI tập lớn mô phỏng hệ thống truyền thông – D14VT

11 23 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 841,62 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BÀI TẬP LỚN Mô phỏng hệ thống truyền thông – D14VT Assignments on Simulation of Communication Systems Sinh viên thực hiện: Họ và tên: Nguyễn Thị Hương Mã SV: B14DCVT109 Lớp: D14VT02 I..

Trang 1

BÀI TẬP LỚN

Mô phỏng hệ thống truyền thông – D14VT (Assignments on Simulation of Communication Systems)

Sinh viên thực hiện:

Họ và tên: Nguyễn Thị Hương

Mã SV: B14DCVT109

Lớp: D14VT02

I Nhiệm vụ 1

Quá trình chuyển đổi A/D (Điều chế xung mã PCM)

Mô phỏng quá trình PCM 8 bít cho tín hiệu tương tự, trong đó tín hiệu tương tự đầu vào được mô tả bởi công thức sau:

𝑠(𝑡) = ∑ 𝐴𝑘cos (2𝜋𝑓𝑘(𝑡 + (−1)𝑘+1𝑡2))

3

𝑘=1

với 𝐴𝑘 lần lượt là [1, 2, 1], 𝑓𝑘 = 109 kHz

1 Code Tín hiệu đầu vào

function [ st ] = TinHieu(fk,N)

t=0:(1/fk):N;

st=cos(2*pi*fk*(t+(t.^2)))+2*cos(2*pi*fk*(t-(t.^2)))+cos(2*pi*fk*(t+(t.^2))); plot(t,st);

title('Tin hieu tuong tu');

axis([0 N min(st)-1 max(st)+1]);

xlabel('Time(s)');

ylabel('Amplitude');

grid on;

end

Trang 2

2 Code Lấy mẫu tín hiệu

function [ st ] = LayMau(fk,fm,N)

t=0:(1/fm):N;

st=cos(2*pi*fk*(t+(t.^2)))+2*cos(2*pi*fk*(t-(t.^2)))+cos(2*pi*fk*(t+(t.^2)));

stem(t,st,'r');

title('Tin hieu lay mau fm=4*fk');

axis([0 N min(st)-1 max(st)+1]);

xlabel('Time(s)');

ylabel('Amplitude');

grid on;

end

Trang 3

3 Code Nén tín hiệu

function [out,V] = NenTH(in)

%Nen tin hieu truoc khi dua vao khoi luong tu hoá

%in la tin hieu dua vao

%Su dung nen theo luat mu voi he so mu = 255

mu=255;

V = max(in); %Bien do lon nhat tin hieu

out = compand(in,mu,V,'mu/compressor'); %Nen TH theo mu

end

4 Code Giải nén tín hiệu

function [ out ] = GiaiNen( in )

%Giai nen tin hieu

%in la tin hieu dua vao giai nen

%Su dung nen theo luat mu voi he so mu = 255

mu=255;

V = max(in); %Bien do lon nhat tin hieu

out = compand(in,mu,V,'mu/expander'); %Nen TH theo mu

end

5 Code Điều chế xung mã PCM

function [code,xq] = uniform_pcm(x,M)

% Uniform PCM encoding of a sequence

% x = input sequence

% M = number of quantization levels

% code = the encoded output

% xq = quantized sequence before encoding

Nb = log2(M);

Amax = max(abs(x));

Trang 4

delta = 2*Amax/(M-1);

Mq = -Amax:delta:Amax;

Ml = 0:M-1;

xq = zeros(size(x));

xcode = xq;

for k = 1:M

ind = find(x > Mq(k)-delta/2 & x <= Mq(k)+delta/2);

xq(ind) = Mq(k);

xcode(ind) = Ml(k);

end

code = de2bi(xcode,Nb,'left-msb');

figure

stairs(xq,'r');

axis([0 length(xq) min(xq)-1 max(xq)+1]);

grid on;

6 Code Giải diều chế PCM

function [ dcode,xq ] = d_PCM( Amax,code,M )

dcode=bi2de(code,'left-msb');

[a,b]=size(dcode);

delta = 2*Amax/(M-1);

Mq = -Amax:delta:Amax;

xq = zeros(1,a*b);

for k = 1:length(xq)

xq(k)=Mq(dcode(k)+1);

end

figure

stairs(xq,'g');

axis([0 length(xq) min(xq)-1 max(xq)+1]);

grid on;

Trang 5

end

Commamd Window

>> fk=109;

>> x=TinHieu(fk,1);

>> figure

>> xm=LayMau(fk,4*fk,1);

>> [out,V]=NenTH(x);

>> [code,xq] = uniform_pcm(out,256);

>>

>> [dcode,xq2]=d_PCM(V,code,256);

>> out2=GiaiNen(xq2);

>> figure

>> plot(out2);

>> grid

>> axis([0 length(out) min(out2)-1 max(out2)+1]);

>> error=((norm(x)-norm(out2))/sqrt(length(x)))^2;

>> sqnr = 20*log10(norm(x)-norm(x-out2));

Trang 6

Tên các biến và giá trị

II Nhiệm vụ 2

1 Mô tả nhiệm vụ:

Mô phỏng hệ thống truyền dẫn số băng gốc cho tín hiệu được mã hóa PCM đã thực hiện trong nhiệm vụ 1 Mã đường lưỡng cực cho hệ thống mình mô phỏng:

- Mã đường CMI (Mã SV: B14DCVT109)

1.1 Code Đọc ma trận sau khi PCM (Chuyển ma trận mã thành vector mã)

function [ N,y ] = DocMaTran( x )

% N so bit ma hoa cho 1 mau

[a,N]=size(x);

y=zeros(1,a*N);

Trang 7

k=1;

while(k<=a*N)

for i=1:a

for j=1:N

y(k)=x(i,j);

k=k+1;

end

end

end

end

1.2 Code Chuyển Vector mã thành mã đường CMI

Chuyển thành mã CMI có biên độ [-0.5, 0.5]

function y=cmicode(x)

% x la chuoi bit nhi phan dau vao

dk=0;

for i=1:length(x)

if (x(i)==1)

dk=dk+1;

if (mod(dk,2)==1)

y(2*(i-1)+1:2*i)=0.5;

else y(2*(i-1)+1:2*i)=-0.5;

end

else

y(2*(i-1)+1:2*i)=[-0.5 0.5];

end

end

1.3 Code Biểu diễn mã đường CMI

function [z]=dangsong(y,M)

% y la chuoi bit dau vao

% N la so mau tren 1 bit

N=M/2;

for t=0:length(y)*N-1

k=fix(t/N)+1;

z(t+1)=y(k);

Trang 8

end

plot(z,'LineWidth',2);

axis([0 length(z) -0.6 0.6]);

grid on;

end

1.4 Code Bộ lọc Butterwflt

function y = butterwflt(x,n,B,Ts)

% Bo loc butterworth

% B - Bang thong bo loc

% Ts - Thoi gian lay mau

% n - Bac cua bo loc

% y - Dau ra bo loc

Ns = length(x);

% Mien tan so

f = [0:Ns/2-1 -Ns/2:-1]/(Ns*Ts);

Xf = fft(x);

Hf = 1./(1+(f./B).^(2*n)); % Ham truyen dat

Yf = Xf.*Hf;

% Chuyen thanh mien thoi gian

y = ifft(Yf);

end

1.5 Code Tạo dạng phổ tín hiệu

function [f,Pf] = spectrocal(t,x)

% t - time vector

% x - input samples

% f - frequency vector

% Pf - estimated PSD of x

Ns = length(x);

Ts = t(2)-t(1);

f = (-Ns/2:Ns/2-1)/(Ns*Ts);

Pf = fft(x,Ns);

Pf = fftshift(Pf)/Ns;

Pf = abs(Pf).^2;

End

1.6 Code Giải CMI

Trang 9

function [ y ] = cmidcode( x,M )

% x chuoi can giai CMI

% M so mau tren 1 bit

s=0;

y=zeros(1,length(x)/M);

for i=1:length(y)

s=x((i-1)*100+(M/4))+x((i-1)*100+((3*M)/4));

if s==0

y(i)=0;

else

y(i)=1;

end

s=0;

end

end

1.7 Code Đọc Ma trận sau giải CMI

function [ y ] = DocMaTran2( x,Q )

N=log2(Q);

M=length(x)/N;

y=zeros(M,N);

k=1;

while(k<=length(x))

for i=1:M

for j=1:N

y(i,j)=x(k);

k=k+1;

end

end

end

end

Commamd Window

>> fk=109;

>> M=100;% Số mẫu mã hóa cho 1 bit

>> Q=256;% Số mức lượng tử

>> x=TinHieu(fk,1);

Trang 10

>> figure

>> xm=LayMau(fk,4*fk,1);

>> [out,V]=NenTH(x);

>> [code,xq] = uniform_pcm(out,Q);

>> [N,y1]=DocMaTran(code);

>> y2=cmicode(y1);

>> y3=dangsong(y2,M);

>> yq=butterwflt(y3,2,244,0.5);

>> ynoisy1 = awgn(yq,1,'measured');

>> a=yq+ynoisy1;

>> yqz=butterwflt(a,2,244,0.5);

>> t=length(yqz);

>> A=zeros(1,t);

>> for i=1:t

if yqz(i)>0

A(i)=0.5;

else

A(i)=-0.5;

end

end

>> dcmi=cmidcode(A,M);

>> code2=DocMaTran2(dcmi,N);

>> [dcode,xq2]=d_PCM(V,code2,256);

>> out2=GiaiNen(xq2);

>> figure

>> plot(out2);

>> grid

>> axis([0 length(out2) -5 5]);

>> title('Tin hieu phia thu');

>> error=((norm(x)-norm(out2))/sqrt(length(x)))^2;

>> sqnr = 20*log10(norm(x)-norm(x-out2));

Trang 11

Tín hiệu phía thu

Tên các biến và giá trị

Ngày đăng: 28/07/2021, 11:39

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w