Мелкие вопросы по ЦОС
Re: Мелкие вопросы по ЦОС
Добрый день, подскажите пожалуйста как будет отличаться результат БФП если вместо формат Q15 использовать Q31?
- Бахурин Сергей
- Администратор
- Сообщения: 1119
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Мелкие вопросы по ЦОС
Будет но совсем незначительно
Re: Мелкие вопросы по ЦОС
Увеличится точность?
Re: Мелкие вопросы по ЦОС
А если например делать FFT c float будут ли какие преимущества или недостатки?
Re: Мелкие вопросы по ЦОС
Здравствуйте, читая книгу Стивена Смита возник небольшой вопрос касаемо нормировки при обратном ДПФ.
На сколько верно выполнять нормировку так, как приводит автор:
Re* и Im* соответственно перемножаются на косинус и синус под знаком суммы от
(просто целиком формула не вмещается сюда), где
и
, причем для вещественных компонент с индексом
и
нормировка проводится на
. Так же смущает момент, что индекс частотной области
пробегает в диапазоне
, когда в других источниках (например, Лайонс или же на этом ресурсе) принимает значения
.
Да и вообще пытался делать DFT и IDFT через матлаб по описанию этой книги и получалась билеберда.
Может кто-то сталкивался ?
На сколько верно выполнять нормировку так, как приводит автор:
Re* и Im* соответственно перемножаются на косинус и синус под знаком суммы от
Да и вообще пытался делать DFT и IDFT через матлаб по описанию этой книги и получалась билеберда.
Может кто-то сталкивался ?
- Бахурин Сергей
- Администратор
- Сообщения: 1119
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Мелкие вопросы по ЦОС
Конкретно эту книгу не видел. Но судя по описанию предположительно рассматривается какой то специфический случай. Нужно смотреть оригинал. Если есть необходимость, пришлите копии страниц в личкуб
Re: Мелкие вопросы по ЦОС
Здравствуйте!
Я начинающий в ЦОС, не могу понять как построить угол фазы.
Код:
%ДПФ
clear all
clc
fs = 8000;
ts = 1/fs;
t = 0:ts:0.001;
N = 8;
m = 0:1:N - 1;
x = sin(2*pi*1000*t) + 0.5*sin(2*pi*2000*t + 3*pi/4);
subplot(3,2,1)
plot(t,x)
title('Сигнал')
xlabel('n')
%Xfi = 0;
X = 0;
y = 0;
for n = 0:1:N-1 %суммируем значения X(m)
y = sin(2*pi*1000*n*ts) + 0.5*sin(2*pi*2000*n*ts + 3*pi/4); %дискретный сигнал
subplot(3,2,2)
plot(n,y), hold on, stem(n,y)
xlabel('n')
title('Дискретный сигнал')
X = X + y.*(cos(2*pi*n.*m/N) - 1i*sin(2*pi*n.*m/N)); %ДПФ (тригонометрическая ф-ла)
end
Xfi = atan(imag(X)/real(X)); % Находим фазовый угол X(m)???
subplot(3,2,3)
stem(m,abs(X))
title('Модуль X(m)')
xlabel('m, КГц')
subplot(3,2,4)
stem(m,real(X))
title('Действительная часть X(m)')
xlabel('m, КГц')
subplot(3,2,5)
plot(m, Xfi)
hold on
title('Фаза X(m), в градусах')
xlabel('m, КГц')
subplot(3,2,6)
stem(m,imag(X))
title('Мнимая часть X(m)')
xlabel('m, КГц')
Все графики строит, кроме фазы
Я начинающий в ЦОС, не могу понять как построить угол фазы.
Код:
%ДПФ
clear all
clc
fs = 8000;
ts = 1/fs;
t = 0:ts:0.001;
N = 8;
m = 0:1:N - 1;
x = sin(2*pi*1000*t) + 0.5*sin(2*pi*2000*t + 3*pi/4);
subplot(3,2,1)
plot(t,x)
title('Сигнал')
xlabel('n')
%Xfi = 0;
X = 0;
y = 0;
for n = 0:1:N-1 %суммируем значения X(m)
y = sin(2*pi*1000*n*ts) + 0.5*sin(2*pi*2000*n*ts + 3*pi/4); %дискретный сигнал
subplot(3,2,2)
plot(n,y), hold on, stem(n,y)
xlabel('n')
title('Дискретный сигнал')
X = X + y.*(cos(2*pi*n.*m/N) - 1i*sin(2*pi*n.*m/N)); %ДПФ (тригонометрическая ф-ла)
end
Xfi = atan(imag(X)/real(X)); % Находим фазовый угол X(m)???
subplot(3,2,3)
stem(m,abs(X))
title('Модуль X(m)')
xlabel('m, КГц')
subplot(3,2,4)
stem(m,real(X))
title('Действительная часть X(m)')
xlabel('m, КГц')
subplot(3,2,5)
plot(m, Xfi)
hold on
title('Фаза X(m), в градусах')
xlabel('m, КГц')
subplot(3,2,6)
stem(m,imag(X))
title('Мнимая часть X(m)')
xlabel('m, КГц')
Все графики строит, кроме фазы
- Бахурин Сергей
- Администратор
- Сообщения: 1119
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Мелкие вопросы по ЦОС
Если real(X) равно 0 то могут быть проблемы с делением на 0. Попробуйте atan2 вместо atan