S
snoop835
Guest
Привіт всім,
Я намагаюся моделювати АЦП для SFDR, SNR, THD і SNDR.MATLAB код додається нижче.Я новачок в MATLAB і не може повністю зрозуміти програму.
Для моделювання, я вхідний сигнал низького синусоїди частоти і АЦП працює на 50ms / сЧи повинен я приймати вихід з АЦП або мені потрібно, щоб підключити вихід АЦП ідеального ЦАП і використовувати результати від ідеального ЦАП і запустити програму, внизу?(1) Може хто-небудь пояснити програми нижче.
% Span вхідних Частотний на кожній стороні% Проліт = 5;проліт = тах (кругла (numpt/200), 5);(2) Коли я запускаю програму, вона показує помилки, і я не знаю, як це виправити!Може хто-небудь виправити програма, наведена нижче, які будуть використовуватися в 10-розрядний АЦП на тактовій частоті 50MHz.
Я вдячний за будь-допомагає.************************************************** ********************
%------------------------------------------------- %
%% MATLAB код для розрахунку SNR, SNDR, THD SFDR
%% Дата: 11 липня 2005
%% Обороту: 1
%------------------------------------------------- %
fclk = 80е 6;
numpt = 32;
numbit = 3;
test.dat навантаження;% завантаження даних з жорсткого диска
= Тест ";
N = довжина (а);
% [M, N] = розмір (а);% число даних
для я = 1:1: N;
з = int2str ((я));% змінити тип даних ціле число в рядок типу
Темп = 0;
Nlength = довжина (с);% довжини рядка;
для / = 1:1: Nlength;
D = str2num (с (к)) * 2 ^ (Nlength-J);% бінарних до грудня
Темп Темп = D;
цілі;
Код (я) = Темп;% / numpt * 2,5;
цілі;
N = довжина (код);
% Дільниці результатів у часовій області
фігури;
ділянка ([1: N], код);
Назва ("Тайм-DOMAIN ')
xlabel (відбір проб ');
ylabel ('DIGITAL OUTPUT код ");
зум XON;
% У початковий стан цифрового синусоїди
Даут = (код-(2 ^ numbit-1)) / 2;
%, Якщо ні одне вікно не functionis використовуватися, вхід тон повинен бути вибраний
% Бути унікальним, і у зв'язку з вибіркової freq.To досягнення
% Цього, простих чисел вводяться і введення тон
% Визначається FIN = fSAMPLE * (прем'єр Кількість даних / запис розміру).
% Пом'якшити цю вимогу, віконні функції, такі як HANNING
HAMING% можуть бути введені, але в основних
% У результаті БПФ спектру з'являється 'гостріше ", без
% Використання вікна функції.
Doutw = Даут;
Doutw =% .* хеннінг Даут (numpt);
Doutw% = Даут .* Хеммінга (numpt);
% Виконання БПФ
Dout_spect = FFT (Doutw, numpt);
% Перерахувати по дБ
Dout_dB = 20 * log10 (ABS (Dout_spect));
% Дільниці ([1: N / 2], Dout_dB (1: N / 2));
% Відображати результати у частотній області з ділянкою БПФ
фігури;
Махов = тах (Dout_dB (2: numpt / 2));
%% Для TTIMD, використовуйте наступний короткий рутини, нормована на-6.5dB
% Від повної шкали.
% Дільниці ([0: numpt/2-1] .* fclk / numpt, Dout_dB (1: numpt / 2)-Махов-6.5);
ділянка ([0: numpt/2-1] .* fclk / numpt, Dout_dB (1: numpt / 2)-Махов);
сітці;
Назва ('БПФ');
xlabel ('ANALOG INPUT частота (МГц)');
ylabel ('амплітуди (дБ)');
% A1 = осі, осі ([a1 (1) a1 (2) -120 a1 (4)]);
%-----------------------------------------------%
% Розрахувати SNR, SINAD, ENOB, THD і SFDR значення
%-----------------------------------------------%
% Вважають бен кількість сигналу, DC = бен 1
плавника = знайти (Dout_dB (1: numpt / 2) == Махов);
% Span вхідних Частотний на кожній стороні
% Проліт = 5;
проліт = тах (кругла (numpt/200), 5);
% Наближених служби пошуку для гармонік з кожної сторони
spanh = 2;
% Визначити спектр потужності
spectP = (ABS (Dout_spect )).*( ABS (Dout_spect));
% Знайти постійного зміщення влади
Pdc = сума (spectP (1: служби));
Екстракт% загальної потужності сигналу
Ps = сума (spectP (проліт-плавника: плавник служби));
% Вектор матричних для зберігання як частота і потужність сигналу і гармонік
Fh = [];
% Перший елемент вектора і матриці представляє собою сигнал,
% На наступний елемент повторень другої гармоніки і т. д..
Ph = [];
Знайти% гармонійних частота і потужність компонент в спектрі БПФ
для har_num = 1:10
% Введення тонн більше, ніж fSAMPLE є псевдонімами назад у спектрі
звуковий сигнал = бер ((har_num * (FIN-1) 1) / numpt, 1);
якщо тону> 0,5
вхід тонн% більше, ніж 0,5 * fSAMPLE (після накладення) відображаються
тон = 1-тон;
кінець
Fh = [тон] Fh;
% Для цієї процедури на роботу, забезпечити відкинула вищих гармонік порядку
% Не збігаються
% З DC або сигнал або нижче гармонік
har_peak = тах (spectP (кругла (тон * numpt)-spanh: круглі (тон * numpt) spanh));
har_bin = знайти (spectP (кругла (тон * numpt)-spanh: круглі (тон * numpt) spanh) == har_peak);
har_bin = har_bin тур (* numpt тон)-spanh-1;
Ph = [Ph суми (spectP (har_bin-1: har_bin 1))];
кінець
Визначити% загальної потужності спотворень
Pd = сума (Ph (2:05));
% Визначити потужність шуму
Р = SUM (spectP (1: numpt / 2))-Pdc-Ps-Pd;
формат;
A = (макс (код)-мін (код))
АБР = 20 * log10 (A);
SINAD = 10 * log10 (Ps / (Pn Pd));
SNR = 10 * log10 (Ps / Р);
DISP ('THD обчислюється з другого по п'яте гармонік');
THD = 10 * log10 (Pd / Ph (1));
SFDR = 10 * log10 (Ph (1) / макс (Ph (2:10)));
DISP ('сигналу і гармонійного силових елементів:');
HD = 10 * log10 (Ph (1:10) / Ph (1));
ENOB = (SNR-1.7) / 6,0206;
% Розрізняти всі гармоніки місця в межах ділянки БПФ
триматися;
ділянки (Fh (2) * fclk, 0, 'Mo', Fh (3) * fclk, 0, 'сх, Fh (4) * fclk, 0, "р ', Fh (5) * fclk, 0, 'м *', Fh (6) * fclk, 0, 'bs, Fh (7) * fclk, 0,' BD, FH (
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Прохолодний" border="0" />
* Fclk, 0, 'кВ, Fh (9) * fclk, 0,' у ^ ');
Легенда ('1-й ', '2-й, "3rd', '4-й ', '5-й', '6-й, '7-го ', '8-го, '9-й');
fprintf ('SINAD =% GDB \ п', SINAD);
fprintf ('SNR =% GDB \ п', SNR);
fprintf ('% THD = GDB \ п', THD);
fprintf ('SFDR =% GDB \ п', SFDR);
fprintf ('ENOB =% г \ п', ENOB);
% Динамічний діапазон специфікації, TTIMD
% 2 тон IMD може бути непростою вимірювання, так як додаткове обладнання
% Требуется (потужність комбайнер об'єднати дві частоти вхід) можуть сприяти
% Небажаних продуктів Інтермодуляції, що фальсифікувати АЦП intermodualtion
% Distortion.You необхідно дотримуватися таких умов для оптимізації IMD
% Продуктивності, хоча вони і роблять вибір правильний введення частоти
% Стомлюючої завданням.
%-Перших, вхід тонн повинні потрапити в смугу пропускання введення filter.If
% Ці сигнали близько один до одного (кілька десятків або сотень кілогерц для
% МГц смуги пропускання), відповідну функцію вікна повинні бути обрані в якості
% Well.Placing їх занадто близько один до одного, однак, можуть дозволити владі комбайнер
% До загальної фальсифікувати свідчення IMD, сприяючи небажаних другий і третій
Для IMD% продукції (в залежності від вхідного тону "місце в
% Смуги пропускання). Інтервал вхідного тону занадто далеко один від одного можуть зажадати різних
% Тип вікна, в якій менше частота resolution.The також вимагає установки мін
% 3 фазового автопідстроювання generators.This вимогу сигналу рідко представляє
% Проблема тестовим лабораторіям, але генератори мають різні можливості для
% Відповідає частота об'єднання і amplitude.Compensating таких невідповідностей, щоб забезпечити (для
Наприклад%) 0,5 дБ FS-два тони конверт і амплітуди сигналу-6.5dB FS
% Збільшить ваші зусилля та час тестування (див. наступну програму-код
% Видобутку).
Я намагаюся моделювати АЦП для SFDR, SNR, THD і SNDR.MATLAB код додається нижче.Я новачок в MATLAB і не може повністю зрозуміти програму.
Для моделювання, я вхідний сигнал низького синусоїди частоти і АЦП працює на 50ms / сЧи повинен я приймати вихід з АЦП або мені потрібно, щоб підключити вихід АЦП ідеального ЦАП і використовувати результати від ідеального ЦАП і запустити програму, внизу?(1) Може хто-небудь пояснити програми нижче.
% Span вхідних Частотний на кожній стороні% Проліт = 5;проліт = тах (кругла (numpt/200), 5);(2) Коли я запускаю програму, вона показує помилки, і я не знаю, як це виправити!Може хто-небудь виправити програма, наведена нижче, які будуть використовуватися в 10-розрядний АЦП на тактовій частоті 50MHz.
Я вдячний за будь-допомагає.************************************************** ********************
%------------------------------------------------- %
%% MATLAB код для розрахунку SNR, SNDR, THD SFDR
%% Дата: 11 липня 2005
%% Обороту: 1
%------------------------------------------------- %
fclk = 80е 6;
numpt = 32;
numbit = 3;
test.dat навантаження;% завантаження даних з жорсткого диска
= Тест ";
N = довжина (а);
% [M, N] = розмір (а);% число даних
для я = 1:1: N;
з = int2str ((я));% змінити тип даних ціле число в рядок типу
Темп = 0;
Nlength = довжина (с);% довжини рядка;
для / = 1:1: Nlength;
D = str2num (с (к)) * 2 ^ (Nlength-J);% бінарних до грудня
Темп Темп = D;
цілі;
Код (я) = Темп;% / numpt * 2,5;
цілі;
N = довжина (код);
% Дільниці результатів у часовій області
фігури;
ділянка ([1: N], код);
Назва ("Тайм-DOMAIN ')
xlabel (відбір проб ');
ylabel ('DIGITAL OUTPUT код ");
зум XON;
% У початковий стан цифрового синусоїди
Даут = (код-(2 ^ numbit-1)) / 2;
%, Якщо ні одне вікно не functionis використовуватися, вхід тон повинен бути вибраний
% Бути унікальним, і у зв'язку з вибіркової freq.To досягнення
% Цього, простих чисел вводяться і введення тон
% Визначається FIN = fSAMPLE * (прем'єр Кількість даних / запис розміру).
% Пом'якшити цю вимогу, віконні функції, такі як HANNING
HAMING% можуть бути введені, але в основних
% У результаті БПФ спектру з'являється 'гостріше ", без
% Використання вікна функції.
Doutw = Даут;
Doutw =% .* хеннінг Даут (numpt);
Doutw% = Даут .* Хеммінга (numpt);
% Виконання БПФ
Dout_spect = FFT (Doutw, numpt);
% Перерахувати по дБ
Dout_dB = 20 * log10 (ABS (Dout_spect));
% Дільниці ([1: N / 2], Dout_dB (1: N / 2));
% Відображати результати у частотній області з ділянкою БПФ
фігури;
Махов = тах (Dout_dB (2: numpt / 2));
%% Для TTIMD, використовуйте наступний короткий рутини, нормована на-6.5dB
% Від повної шкали.
% Дільниці ([0: numpt/2-1] .* fclk / numpt, Dout_dB (1: numpt / 2)-Махов-6.5);
ділянка ([0: numpt/2-1] .* fclk / numpt, Dout_dB (1: numpt / 2)-Махов);
сітці;
Назва ('БПФ');
xlabel ('ANALOG INPUT частота (МГц)');
ylabel ('амплітуди (дБ)');
% A1 = осі, осі ([a1 (1) a1 (2) -120 a1 (4)]);
%-----------------------------------------------%
% Розрахувати SNR, SINAD, ENOB, THD і SFDR значення
%-----------------------------------------------%
% Вважають бен кількість сигналу, DC = бен 1
плавника = знайти (Dout_dB (1: numpt / 2) == Махов);
% Span вхідних Частотний на кожній стороні
% Проліт = 5;
проліт = тах (кругла (numpt/200), 5);
% Наближених служби пошуку для гармонік з кожної сторони
spanh = 2;
% Визначити спектр потужності
spectP = (ABS (Dout_spect )).*( ABS (Dout_spect));
% Знайти постійного зміщення влади
Pdc = сума (spectP (1: служби));
Екстракт% загальної потужності сигналу
Ps = сума (spectP (проліт-плавника: плавник служби));
% Вектор матричних для зберігання як частота і потужність сигналу і гармонік
Fh = [];
% Перший елемент вектора і матриці представляє собою сигнал,
% На наступний елемент повторень другої гармоніки і т. д..
Ph = [];
Знайти% гармонійних частота і потужність компонент в спектрі БПФ
для har_num = 1:10
% Введення тонн більше, ніж fSAMPLE є псевдонімами назад у спектрі
звуковий сигнал = бер ((har_num * (FIN-1) 1) / numpt, 1);
якщо тону> 0,5
вхід тонн% більше, ніж 0,5 * fSAMPLE (після накладення) відображаються
тон = 1-тон;
кінець
Fh = [тон] Fh;
% Для цієї процедури на роботу, забезпечити відкинула вищих гармонік порядку
% Не збігаються
% З DC або сигнал або нижче гармонік
har_peak = тах (spectP (кругла (тон * numpt)-spanh: круглі (тон * numpt) spanh));
har_bin = знайти (spectP (кругла (тон * numpt)-spanh: круглі (тон * numpt) spanh) == har_peak);
har_bin = har_bin тур (* numpt тон)-spanh-1;
Ph = [Ph суми (spectP (har_bin-1: har_bin 1))];
кінець
Визначити% загальної потужності спотворень
Pd = сума (Ph (2:05));
% Визначити потужність шуму
Р = SUM (spectP (1: numpt / 2))-Pdc-Ps-Pd;
формат;
A = (макс (код)-мін (код))
АБР = 20 * log10 (A);
SINAD = 10 * log10 (Ps / (Pn Pd));
SNR = 10 * log10 (Ps / Р);
DISP ('THD обчислюється з другого по п'яте гармонік');
THD = 10 * log10 (Pd / Ph (1));
SFDR = 10 * log10 (Ph (1) / макс (Ph (2:10)));
DISP ('сигналу і гармонійного силових елементів:');
HD = 10 * log10 (Ph (1:10) / Ph (1));
ENOB = (SNR-1.7) / 6,0206;
% Розрізняти всі гармоніки місця в межах ділянки БПФ
триматися;
ділянки (Fh (2) * fclk, 0, 'Mo', Fh (3) * fclk, 0, 'сх, Fh (4) * fclk, 0, "р ', Fh (5) * fclk, 0, 'м *', Fh (6) * fclk, 0, 'bs, Fh (7) * fclk, 0,' BD, FH (
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Прохолодний" border="0" />
* Fclk, 0, 'кВ, Fh (9) * fclk, 0,' у ^ ');
Легенда ('1-й ', '2-й, "3rd', '4-й ', '5-й', '6-й, '7-го ', '8-го, '9-й');
fprintf ('SINAD =% GDB \ п', SINAD);
fprintf ('SNR =% GDB \ п', SNR);
fprintf ('% THD = GDB \ п', THD);
fprintf ('SFDR =% GDB \ п', SFDR);
fprintf ('ENOB =% г \ п', ENOB);
% Динамічний діапазон специфікації, TTIMD
% 2 тон IMD може бути непростою вимірювання, так як додаткове обладнання
% Требуется (потужність комбайнер об'єднати дві частоти вхід) можуть сприяти
% Небажаних продуктів Інтермодуляції, що фальсифікувати АЦП intermodualtion
% Distortion.You необхідно дотримуватися таких умов для оптимізації IMD
% Продуктивності, хоча вони і роблять вибір правильний введення частоти
% Стомлюючої завданням.
%-Перших, вхід тонн повинні потрапити в смугу пропускання введення filter.If
% Ці сигнали близько один до одного (кілька десятків або сотень кілогерц для
% МГц смуги пропускання), відповідну функцію вікна повинні бути обрані в якості
% Well.Placing їх занадто близько один до одного, однак, можуть дозволити владі комбайнер
% До загальної фальсифікувати свідчення IMD, сприяючи небажаних другий і третій
Для IMD% продукції (в залежності від вхідного тону "місце в
% Смуги пропускання). Інтервал вхідного тону занадто далеко один від одного можуть зажадати різних
% Тип вікна, в якій менше частота resolution.The також вимагає установки мін
% 3 фазового автопідстроювання generators.This вимогу сигналу рідко представляє
% Проблема тестовим лабораторіям, але генератори мають різні можливості для
% Відповідає частота об'єднання і amplitude.Compensating таких невідповідностей, щоб забезпечити (для
Наприклад%) 0,5 дБ FS-два тони конверт і амплітуди сигналу-6.5dB FS
% Збільшить ваші зусилля та час тестування (див. наступну програму-код
% Видобутку).