- initial version

git-svn-id: http://moon:8086/svn/matlab/trunk@14 801c6759-fa7c-4059-a304-17956f83a07c
This commit is contained in:
2015-04-04 08:34:11 +00:00
parent a63adc66a9
commit 489aecaee1
2 changed files with 44 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
function cfoml_eval(x)
N = 1024; % number of subcarriers
M = 103; % number of subcarriers that carry information
omega = 2*pi/N; % carrier spacing
fa = 48000;
fo = 0.0;
x = 0.5*exp(i*2*pi.*(0:length(x)-1)'*fo/fa) .* x;
U = exp(i*omega*(0:N-1)'*(0:N-1));
W = U(:, 1:M);
V = U(:, (M+1):N);
phi = 0;
dphi = pi/100;
for j=1:100,
phik(j) = phi;
P = calcP(phi, N);
phi = phi + dphi;
S(j) = sum(abs(x'*P*U(:, M+1:N)).^2);
end
close all;
plot(phik, real(S)); grid
function P = calcP(phi, N)
P = diag(exp(i*(0:N-1)*phi));
+11
View File
@@ -0,0 +1,11 @@
function [f dmod] = fdet_coarse(x, N, fs, f_off_lo, df, f_off_hi)
f_range = (f_off_lo:df:f_off_hi);
for k=1:lge(f_range)
x_est = exp(-j*(2*pi*f_range(k)/fs*(0:N-1)' + 0));
dmod(k) = sum(x(1:N).*x_est);
end;
[v maxk] = max(abs(dmod));
f = f_range(maxk);