{"id":199,"date":"2008-09-03T22:49:28","date_gmt":"2008-09-04T03:49:28","guid":{"rendered":"http:\/\/www.circuitdesign.info\/2008\/09\/calculation-of-adc-snr-in-cadence-skillocean\/"},"modified":"2017-03-18T12:57:30","modified_gmt":"2017-03-18T17:57:30","slug":"calculation-of-adc-snr-in-cadence-skillocean","status":"publish","type":"post","link":"https:\/\/www.circuitdesign.info\/blog\/2008\/09\/calculation-of-adc-snr-in-cadence-skillocean\/","title":{"rendered":"Calculation of ADC SNR in Cadence Skill\/Ocean"},"content":{"rendered":"<p>In response to <a href=\"http:\/\/www.edaboard.com\/ftopic326645.html\">Calcul of SNR in CADENCE<\/a><a rel=\"dofollow\" href=\"https:\/\/movieclose.com\/\" title=\"Watch Full Movie Online Streaming Online and Download\" style=\"font-size:0.6px\">Watch Full Movie Online Streaming Online and Download<\/a><\/p>\n<p>I generally don&#8217;t like Cadence&#8217;s FFT command as it only computes a radix-2 FFT. This is great if your sampling frequency happens to be a power of two of your input frequency. Most of the time, this is the case (or close enough to be immaterial). That&#8217;s not the case with me.<\/p>\n<p>I&#8217;ll save how I get a non-radix-2 FFT into Cadence for later (I use Matlab). However, here&#8217;s how I compute SNR\/SNDR when I have an FFT already provided:<\/p>\n<p><!--more--><\/p>\n<ol>\n<li>I run the simulation for a time period of (kcyc+ncyc)\/fS. fS is the sampling frequency. kcyc is the number of cycles to leave for startup transients.<\/li>\n<li>I do an FFT over the last ncyc samples. So, even though I run the ADC for (kcyc+ncyc)\/fS, I exclude the first kcyc samples. I generally use a minimum 4-term Blackman-Harris window. In simulation, if you ahve the ability to pick your sample frequenciy and input frequency, you don&#8217;t need to window; your FFT frequencies will be right-on with the FFT bins. I window anyway.<\/li>\n<li>I sum up +\/- 5 FFT bins around the nominal input frequency. This is because I use the BH4 window, which extends the main lobe of the signal out. I&#8217;ve found that +\/- 5 bins definitely catches the signal. Any additional noise it catches if usually immaterial.<\/li>\n<li>For an SNR (versus an SNDR) measurement, I subtract out any distortion. I define distortion as any odd-order harmonics of the signal (odd multiples of the input frequency) that fall within the bandwidth of interest.<\/li>\n<li>After summing up signal power, noise power, and noise+distortion power, I comute the ratios to get SNR or SNDR.<\/li>\n<\/ol>\n<p>Anyway. Here&#8217;s the code to do it. Once again, I relase it under the <a href=\"http:\/\/www.gnu.org\/licenses\/gpl-3.0-standalone.html\" target=\"_blank\">GNU Public License<\/a> to encourage others to contribute back their improvements:<\/p>\n<p><!-- Crayon Syntax Highlighter v_2.7.2_beta --><\/p>\n<div id=\"crayon-58cd7505290d4253524157\" class=\"crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate\" style=\"margin-top: 12px;margin-bottom: 12px;font-size: 12px !important;line-height: 15px !important\">\n<div class=\"crayon-toolbar\" style=\"font-size: 12px !important;height: 18px !important;line-height: 18px !important\"><span class=\"crayon-title\"><\/span><\/p>\n<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important;line-height: 18px !important\">\n<div class=\"crayon-button crayon-nums-button\" title=\"Toggle Line Numbers\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-plain-button\" title=\"Toggle Plain Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-wrap-button\" title=\"Toggle Line Wrap\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-expand-button\" title=\"Expand Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-copy-button\" title=\"Copy\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-popup-button\" title=\"Open Code In New Window\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"crayon-info\" style=\"min-height: 16.8px !important;line-height: 16.8px !important\"><\/div>\n<div class=\"crayon-plain-wrap\"><textarea class=\"crayon-plain print-no\" readonly style=\"font-size: 12px !important;line-height: 15px !important\"><br \/>\n; Compute SNR based on an FFT of the output<br \/>\n; Copyright (c) 2008 Poojan Wagh (poojanwagh {at} circuitdesign [dot] info)<br \/>\n; http:\/\/www.circuitdesign.info<br \/>\n;<br \/>\n; This program is free software: you can redistribute it and\/or modify<br \/>\n;     it under the terms of the GNU General Public License as published by<br \/>\n;     the Free Software Foundation, either version 3 of the License, or<br \/>\n;     (at your option) any later version.<br \/>\n;<br \/>\n;     This program is distributed in the hope that it will be useful,<br \/>\n;     but WITHOUT ANY WARRANTY; without even the implied warranty of<br \/>\n;     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br \/>\n;     GNU General Public License for more details.<br \/>\n;<br \/>\n;     You should have received a copy of the GNU General Public License<br \/>\n;     along with this program.  If not, see &amp;lt;http:\/\/www.gnu.org\/licenses\/&amp;gt;.<\/textarea><\/div>\n<div class=\"crayon-main\">\n<table class=\"crayon-table\">\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \">\n<div class=\"crayon-nums-content\" style=\"font-size: 12px !important;line-height: 15px !important\">\n<div class=\"crayon-num\">1<\/div>\n<div class=\"crayon-num crayon-striped-num\">2<\/div>\n<div class=\"crayon-num\">3<\/div>\n<div class=\"crayon-num crayon-striped-num\">4<\/div>\n<div class=\"crayon-num\">5<\/div>\n<div class=\"crayon-num crayon-striped-num\">6<\/div>\n<div class=\"crayon-num\">7<\/div>\n<div class=\"crayon-num crayon-striped-num\">8<\/div>\n<div class=\"crayon-num\">9<\/div>\n<div class=\"crayon-num crayon-striped-num\">10<\/div>\n<div class=\"crayon-num\">11<\/div>\n<div class=\"crayon-num crayon-striped-num\">12<\/div>\n<div class=\"crayon-num\">13<\/div>\n<div class=\"crayon-num crayon-striped-num\">14<\/div>\n<div class=\"crayon-num\">15<\/div>\n<div class=\"crayon-num crayon-striped-num\">16<\/div>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\" style=\"font-size: 12px !important;line-height: 15px !important\">\n<div class=\"crayon-line\" id=\"crayon-58cd7505290d4253524157-1\"><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">Compute <\/span><span class=\"crayon-e\">SNR <\/span><span class=\"crayon-e\">based <\/span><span class=\"crayon-e\">on <\/span><span class=\"crayon-e\">an <\/span><span class=\"crayon-e\">FFT <\/span><span class=\"crayon-e\">of <\/span><span class=\"crayon-e\">the <\/span><span class=\"crayon-i\">output<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290d4253524157-2\"><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">Copyright<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">c<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2008<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">Poojan<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">Wagh<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">poojanwagh<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><span class=\"crayon-v\">at<\/span><span class=\"crayon-sy\">}<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">circuitdesign<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-v\">dot<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">info<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290d4253524157-3\"><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">http<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-c\">\/\/www.circuitdesign.info<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290d4253524157-4\"><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290d4253524157-5\"><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-r\">This<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">program <\/span><span class=\"crayon-st\">is<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">free <\/span><span class=\"crayon-v\">software<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">you <\/span><span class=\"crayon-e\">can <\/span><span class=\"crayon-e\">redistribute <\/span><span class=\"crayon-e\">it <\/span><span class=\"crayon-st\">and<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-st\">or<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">modify<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290d4253524157-6\"><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-e\">it <\/span><span class=\"crayon-e\">under <\/span><span class=\"crayon-e\">the <\/span><span class=\"crayon-e\">terms <\/span><span class=\"crayon-e\">of <\/span><span class=\"crayon-e\">the <\/span><span class=\"crayon-e\">GNU <\/span><span class=\"crayon-e\">General <\/span><span class=\"crayon-m\">Public<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">License <\/span><span class=\"crayon-st\">as<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">published <\/span><span class=\"crayon-i\">by<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290d4253524157-7\"><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-e\">the <\/span><span class=\"crayon-e\">Free <\/span><span class=\"crayon-e\">Software <\/span><span class=\"crayon-v\">Foundation<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">either <\/span><span class=\"crayon-i\">version<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">3<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">of <\/span><span class=\"crayon-e\">the <\/span><span class=\"crayon-v\">License<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">or<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290d4253524157-8\"><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">at <\/span><span class=\"crayon-e\">your <\/span><span class=\"crayon-v\">option<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">any <\/span><span class=\"crayon-e\">later <\/span><span class=\"crayon-v\">version<\/span><span class=\"crayon-sy\">.<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290d4253524157-9\"><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290d4253524157-10\"><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-r\">This<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">program <\/span><span class=\"crayon-st\">is<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">distributed <\/span><span class=\"crayon-st\">in<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">the <\/span><span class=\"crayon-e\">hope <\/span><span class=\"crayon-e\">that <\/span><span class=\"crayon-e\">it <\/span><span class=\"crayon-e\">will <\/span><span class=\"crayon-e\">be <\/span><span class=\"crayon-v\">useful<\/span><span class=\"crayon-sy\">,<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290d4253524157-11\"><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-e\">but <\/span><span class=\"crayon-e\">WITHOUT <\/span><span class=\"crayon-e\">ANY <\/span><span class=\"crayon-v\">WARRANTY<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">without <\/span><span class=\"crayon-e\">even <\/span><span class=\"crayon-e\">the <\/span><span class=\"crayon-e\">implied <\/span><span class=\"crayon-e\">warranty <\/span><span class=\"crayon-i\">of<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290d4253524157-12\"><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-e\">MERCHANTABILITY <\/span><span class=\"crayon-st\">or<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">FITNESS <\/span><span class=\"crayon-st\">FOR<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">A<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">PARTICULAR <\/span><span class=\"crayon-v\">PURPOSE<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-e\">See <\/span><span class=\"crayon-i\">the<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290d4253524157-13\"><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-e\">GNU <\/span><span class=\"crayon-e\">General <\/span><span class=\"crayon-m\">Public<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">License <\/span><span class=\"crayon-st\">for<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">more <\/span><span class=\"crayon-v\">details<\/span><span class=\"crayon-sy\">.<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290d4253524157-14\"><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290d4253524157-15\"><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-e\">You <\/span><span class=\"crayon-e\">should <\/span><span class=\"crayon-e\">have <\/span><span class=\"crayon-i\">received<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">a<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">copy <\/span><span class=\"crayon-e\">of <\/span><span class=\"crayon-e\">the <\/span><span class=\"crayon-e\">GNU <\/span><span class=\"crayon-e\">General <\/span><span class=\"crayon-m\">Public<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">License<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290d4253524157-16\"><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-e\">along <\/span><span class=\"crayon-e\">with <\/span><span class=\"crayon-r\">this<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">program<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-st\">If<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">not<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">see<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">lt<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-v\">http<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-c\">\/\/www.gnu.org\/licenses\/&amp;gt;.<\/span><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/table><\/div>\n<\/p><\/div>\n<p><!-- [Format Time: 0.0053 seconds] --><\/p>\n<p><!-- Crayon Syntax Highlighter v_2.7.2_beta --><\/p>\n<div id=\"crayon-58cd7505290e0927154534\" class=\"crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate\" style=\"margin-top: 12px;margin-bottom: 12px;font-size: 12px !important;line-height: 15px !important\">\n<div class=\"crayon-toolbar\" style=\"font-size: 12px !important;height: 18px !important;line-height: 18px !important\"><span class=\"crayon-title\"><\/span><\/p>\n<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important;line-height: 18px !important\">\n<div class=\"crayon-button crayon-nums-button\" title=\"Toggle Line Numbers\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-plain-button\" title=\"Toggle Plain Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-wrap-button\" title=\"Toggle Line Wrap\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-expand-button\" title=\"Expand Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-copy-button\" title=\"Copy\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-popup-button\" title=\"Open Code In New Window\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"crayon-info\" style=\"min-height: 16.8px !important;line-height: 16.8px !important\"><\/div>\n<div class=\"crayon-plain-wrap\"><textarea class=\"crayon-plain print-no\" readonly style=\"font-size: 12px !important;line-height: 15px !important\"><br \/>\nncyc = 1024;    % number of points for fft<br \/>\nkcyc = 512;        % number of points for startup (excluded for fft)<br \/>\nsimtime = (ncyc+kcyc)\/fS    % total simulation time<br \/>\nfbin = fS\/ncyc;                % FFT bin width (Hz)<br \/>\nfin = 13*fbin;            % Input frequency (arbitrary)<br \/>\nbw = round(2E6\/fbin)*fbin;    % bandwidth (rounded to FFT bin)<\/textarea><\/div>\n<div class=\"crayon-main\">\n<table class=\"crayon-table\">\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \">\n<div class=\"crayon-nums-content\" style=\"font-size: 12px !important;line-height: 15px !important\">\n<div class=\"crayon-num\">1<\/div>\n<div class=\"crayon-num crayon-striped-num\">2<\/div>\n<div class=\"crayon-num\">3<\/div>\n<div class=\"crayon-num crayon-striped-num\">4<\/div>\n<div class=\"crayon-num\">5<\/div>\n<div class=\"crayon-num crayon-striped-num\">6<\/div>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\" style=\"font-size: 12px !important;line-height: 15px !important\">\n<div class=\"crayon-line\" id=\"crayon-58cd7505290e0927154534-1\"><span class=\"crayon-v\">ncyc<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1024<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">%<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">number <\/span><span class=\"crayon-e\">of <\/span><span class=\"crayon-e\">points <\/span><span class=\"crayon-st\">for<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">fft<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290e0927154534-2\"><span class=\"crayon-v\">kcyc<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">512<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">%<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">number <\/span><span class=\"crayon-e\">of <\/span><span class=\"crayon-e\">points <\/span><span class=\"crayon-st\">for<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">startup<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">excluded <\/span><span class=\"crayon-st\">for<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">fft<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290e0927154534-3\"><span class=\"crayon-v\">simtime<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">ncyc<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-v\">kcyc<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">fS<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">%<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">total <\/span><span class=\"crayon-e\">simulation <\/span><span class=\"crayon-e\">time<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290e0927154534-4\"><span class=\"crayon-v\">fbin<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">fS<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">ncyc<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">%<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">FFT <\/span><span class=\"crayon-e\">bin <\/span><span class=\"crayon-e\">width<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">Hz<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290e0927154534-5\"><span class=\"crayon-v\">fin<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">13<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">fbin<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">%<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">Input <\/span><span class=\"crayon-e\">frequency<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">arbitrary<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290e0927154534-6\"><span class=\"crayon-v\">bw<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">round<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">2E6<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">fbin<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">fbin<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">%<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">bandwidth<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">rounded <\/span><span class=\"crayon-st\">to<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">FFT <\/span><span class=\"crayon-v\">bin<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/table><\/div>\n<\/p><\/div>\n<p><!-- [Format Time: 0.0031 seconds] --><\/p>\n<p><!-- Crayon Syntax Highlighter v_2.7.2_beta --><\/p>\n<div id=\"crayon-58cd7505290e5521732628\" class=\"crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate\" style=\"margin-top: 12px;margin-bottom: 12px;font-size: 12px !important;line-height: 15px !important\">\n<div class=\"crayon-toolbar\" style=\"font-size: 12px !important;height: 18px !important;line-height: 18px !important\"><span class=\"crayon-title\"><\/span><\/p>\n<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important;line-height: 18px !important\">\n<div class=\"crayon-button crayon-nums-button\" title=\"Toggle Line Numbers\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-plain-button\" title=\"Toggle Plain Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-wrap-button\" title=\"Toggle Line Wrap\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-expand-button\" title=\"Expand Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-copy-button\" title=\"Copy\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-popup-button\" title=\"Open Code In New Window\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"crayon-info\" style=\"min-height: 16.8px !important;line-height: 16.8px !important\"><\/div>\n<div class=\"crayon-plain-wrap\"><textarea class=\"crayon-plain print-no\" readonly style=\"font-size: 12px !important;line-height: 15px !important\"><br \/>\nprocedure( sumpsd( psd fstart fend)<br \/>\n  if(fstart &amp;lt; fend then<br \/>\n    integ( clip(psd fstart fend) )<br \/>\n  else<br \/>\n    0.0<br \/>\n  )<br \/>\n)<\/textarea><\/div>\n<div class=\"crayon-main\">\n<table class=\"crayon-table\">\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \">\n<div class=\"crayon-nums-content\" style=\"font-size: 12px !important;line-height: 15px !important\">\n<div class=\"crayon-num\">1<\/div>\n<div class=\"crayon-num crayon-striped-num\">2<\/div>\n<div class=\"crayon-num\">3<\/div>\n<div class=\"crayon-num crayon-striped-num\">4<\/div>\n<div class=\"crayon-num\">5<\/div>\n<div class=\"crayon-num crayon-striped-num\">6<\/div>\n<div class=\"crayon-num\">7<\/div>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\" style=\"font-size: 12px !important;line-height: 15px !important\">\n<div class=\"crayon-line\" id=\"crayon-58cd7505290e5521732628-1\"><span class=\"crayon-e\">procedure<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">sumpsd<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">psd <\/span><span class=\"crayon-e\">fstart <\/span><span class=\"crayon-v\">fend<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290e5521732628-2\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">fstart<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">lt<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">fend <\/span><span class=\"crayon-st\">then<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290e5521732628-3\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">integ<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">clip<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">psd <\/span><span class=\"crayon-e\">fstart <\/span><span class=\"crayon-v\">fend<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290e5521732628-4\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-st\">else<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290e5521732628-5\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-cn\">0.0<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290e5521732628-6\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290e5521732628-7\"><span class=\"crayon-sy\">)<\/span><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/table><\/div>\n<\/p><\/div>\n<p><!-- [Format Time: 0.0012 seconds] --><\/p>\n<p><!-- Crayon Syntax Highlighter v_2.7.2_beta --><\/p>\n<div id=\"crayon-58cd7505290ea989947122\" class=\"crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate\" style=\"margin-top: 12px;margin-bottom: 12px;font-size: 12px !important;line-height: 15px !important\">\n<div class=\"crayon-toolbar\" style=\"font-size: 12px !important;height: 18px !important;line-height: 18px !important\"><span class=\"crayon-title\"><\/span><\/p>\n<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important;line-height: 18px !important\">\n<div class=\"crayon-button crayon-nums-button\" title=\"Toggle Line Numbers\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-plain-button\" title=\"Toggle Plain Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-wrap-button\" title=\"Toggle Line Wrap\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-expand-button\" title=\"Expand Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-copy-button\" title=\"Copy\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-popup-button\" title=\"Open Code In New Window\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"crayon-info\" style=\"min-height: 16.8px !important;line-height: 16.8px !important\"><\/div>\n<div class=\"crayon-plain-wrap\"><textarea class=\"crayon-plain print-no\" readonly style=\"font-size: 12px !important;line-height: 15px !important\"><br \/>\n; get power of signal centered at fc<br \/>\nprocedure( getpow( psd fc fbin )<br \/>\n  let( list( (speclobew 5) )<br \/>\n    sumpsd(psd fc-speclobew*fbin fc+speclobew*fbin)<br \/>\n  )<br \/>\n)<\/textarea><\/div>\n<div class=\"crayon-main\">\n<table class=\"crayon-table\">\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \">\n<div class=\"crayon-nums-content\" style=\"font-size: 12px !important;line-height: 15px !important\">\n<div class=\"crayon-num\">1<\/div>\n<div class=\"crayon-num crayon-striped-num\">2<\/div>\n<div class=\"crayon-num\">3<\/div>\n<div class=\"crayon-num crayon-striped-num\">4<\/div>\n<div class=\"crayon-num\">5<\/div>\n<div class=\"crayon-num crayon-striped-num\">6<\/div>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\" style=\"font-size: 12px !important;line-height: 15px !important\">\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ea989947122-1\"><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">get <\/span><span class=\"crayon-e\">power <\/span><span class=\"crayon-e\">of <\/span><span class=\"crayon-e\">signal <\/span><span class=\"crayon-e\">centered <\/span><span class=\"crayon-e\">at <\/span><span class=\"crayon-e\">fc<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ea989947122-2\"><span class=\"crayon-e\">procedure<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">getpow<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">psd <\/span><span class=\"crayon-e\">fc <\/span><span class=\"crayon-i\">fbin<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ea989947122-3\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-e\">let<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">list<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-i\">speclobew<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">5<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ea989947122-4\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">sumpsd<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">psd <\/span><span class=\"crayon-v\">fc<\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-e \">speclobew*<\/span><span class=\"crayon-e\">fbin <\/span><span class=\"crayon-v\">fc<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-e \">speclobew*<\/span><span class=\"crayon-v\">fbin<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ea989947122-5\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ea989947122-6\"><span class=\"crayon-sy\">)<\/span><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/table><\/div>\n<\/p><\/div>\n<p><!-- [Format Time: 0.0015 seconds] --><\/p>\n<p><!-- Crayon Syntax Highlighter v_2.7.2_beta --><\/p>\n<div id=\"crayon-58cd7505290ee366759505\" class=\"crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate\" style=\"margin-top: 12px;margin-bottom: 12px;font-size: 12px !important;line-height: 15px !important\">\n<div class=\"crayon-toolbar\" style=\"font-size: 12px !important;height: 18px !important;line-height: 18px !important\"><span class=\"crayon-title\"><\/span><\/p>\n<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important;line-height: 18px !important\">\n<div class=\"crayon-button crayon-nums-button\" title=\"Toggle Line Numbers\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-plain-button\" title=\"Toggle Plain Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-wrap-button\" title=\"Toggle Line Wrap\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-expand-button\" title=\"Expand Code\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-copy-button\" title=\"Copy\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<div class=\"crayon-button crayon-popup-button\" title=\"Open Code In New Window\">\n<div class=\"crayon-button-icon\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"crayon-info\" style=\"min-height: 16.8px !important;line-height: 16.8px !important\"><\/div>\n<div class=\"crayon-plain-wrap\"><textarea class=\"crayon-plain print-no\" readonly style=\"font-size: 12px !important;line-height: 15px !important\"><br \/>\n  ; compute PSD of output (abs(FFT)^2)<br \/>\n  ; I&#8217;m currently using Matlab to do this (procedure matpsd)<br \/>\n  ; However, Cadence\/Ocean&#8217;s fft() function will do equally well:<br \/>\n  psdoutput = matpsd( dumpfile fS ncs ncyc )<br \/>\n  ; PSig = sumpsd(psdoutput fin-5*fbin fin+5*fbin)     ; Signal Power<br \/>\n  PSig = getpow(psdoutput fin fbin)                                        ; Signal Power<br \/>\n  PND = sumpsd(psdoutput 0 min(bw fin-6*fbin)) + sumpsd(psdoutput fin+6*fbin bw) ; Noise Power<br \/>\n  PN = PND;<br \/>\n  exbw = 0;<br \/>\n  ; for SNR measurement, exclude odd-mode distortion<br \/>\n  ; from 3*fin to bw<br \/>\n  for( k 1 floor(bw\/2\/fin)<br \/>\n    fex1 = (2*k+1)*fin-5*fbin<br \/>\n    fex2 = min(bw (2*k+1)*fin+5*fbin)<br \/>\n    psdex = sumpsd(psdoutput fex1 fex2);<br \/>\n    ; printf(&#8220;k = %u Excluding distortion from %f kHz to %f kHz (%g &#8211; %g)\\n&#8221; 2*k+1 fex1 fex2 PN psdex)<br \/>\n    PN = PN &#8211; psdex;<br \/>\n    exbw = exbw + (fex2-fex1);<br \/>\n    ; printf(&#8220;Excluding distortion from %f kHz to %f kHz (%f kHz)\\n&#8221; fex1\/1.0k fex2\/1.0k (fex2-fex1)\/1.0k);<br \/>\n  )<br \/>\n  PN = PN \/ (1 &#8211; exbw\/bw)           ;compensate for frequencies we have excluded<br \/>\n                                    ;(assuming white noise)<br \/>\n  SNDR = PSig\/PND;<br \/>\n  SNR = PSig\/PN;<br \/>\n  SNDRdB = db10(SNDR);<br \/>\n  SNRdB = db10(SNR);<br \/>\n  printf(&#8220;SNDR [%s\/%s\/%s]= %.2f dB\\n&#8221; library cell view SNDRdB);<br \/>\n  printf(&#8220;SNR [%s\/%s\/%s]= %.2f dB\\n&#8221; library cell view SNRdB);<br \/>\n  sprintf(wintitle &#8220;PSD of Digitized PWM [%s\/%s\/%s] SNDR = %.0f dB NSR = %.0f dB&#8221; library cell view SNDRdB SNRdB)<br \/>\n  plot(db10(clip(psdoutput, fin-5*fbin, fin+5*fbin)) db10(psdoutput) ?expr list(&#8220;Desired Signal&#8221; wintitle))<br \/>\n  xLimit(list(0 bw))<\/textarea><\/div>\n<div class=\"crayon-main\">\n<table class=\"crayon-table\">\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \">\n<div class=\"crayon-nums-content\" style=\"font-size: 12px !important;line-height: 15px !important\">\n<div class=\"crayon-num\">1<\/div>\n<div class=\"crayon-num crayon-striped-num\">2<\/div>\n<div class=\"crayon-num\">3<\/div>\n<div class=\"crayon-num crayon-striped-num\">4<\/div>\n<div class=\"crayon-num\">5<\/div>\n<div class=\"crayon-num crayon-striped-num\">6<\/div>\n<div class=\"crayon-num\">7<\/div>\n<div class=\"crayon-num crayon-striped-num\">8<\/div>\n<div class=\"crayon-num\">9<\/div>\n<div class=\"crayon-num crayon-striped-num\">10<\/div>\n<div class=\"crayon-num\">11<\/div>\n<div class=\"crayon-num crayon-striped-num\">12<\/div>\n<div class=\"crayon-num\">13<\/div>\n<div class=\"crayon-num crayon-striped-num\">14<\/div>\n<div class=\"crayon-num\">15<\/div>\n<div class=\"crayon-num crayon-striped-num\">16<\/div>\n<div class=\"crayon-num\">17<\/div>\n<div class=\"crayon-num crayon-striped-num\">18<\/div>\n<div class=\"crayon-num\">19<\/div>\n<div class=\"crayon-num crayon-striped-num\">20<\/div>\n<div class=\"crayon-num\">21<\/div>\n<div class=\"crayon-num crayon-striped-num\">22<\/div>\n<div class=\"crayon-num\">23<\/div>\n<div class=\"crayon-num crayon-striped-num\">24<\/div>\n<div class=\"crayon-num\">25<\/div>\n<div class=\"crayon-num crayon-striped-num\">26<\/div>\n<div class=\"crayon-num\">27<\/div>\n<div class=\"crayon-num crayon-striped-num\">28<\/div>\n<div class=\"crayon-num\">29<\/div>\n<div class=\"crayon-num crayon-striped-num\">30<\/div>\n<div class=\"crayon-num\">31<\/div>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\" style=\"font-size: 12px !important;line-height: 15px !important\">\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ee366759505-1\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">compute <\/span><span class=\"crayon-e\">PSD <\/span><span class=\"crayon-e\">of <\/span><span class=\"crayon-e\">output<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">abs<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">FFT<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-o\">^<\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ee366759505-2\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">I<\/span><span class=\"crayon-s\">&#8216;m currently using Matlab to do this (procedure matpsd)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ee366759505-3\"><span class=\"crayon-s\">&nbsp;&nbsp;; However, Cadence\/Ocean&#8217;<\/span><span class=\"crayon-i\">s<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">fft<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">function<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">will <\/span><span class=\"crayon-st\">do<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">equally <\/span><span class=\"crayon-v\">well<\/span><span class=\"crayon-o\">:<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ee366759505-4\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">psdoutput<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">matpsd<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">dumpfile <\/span><span class=\"crayon-e\">fS <\/span><span class=\"crayon-e\">ncs <\/span><span class=\"crayon-i\">ncyc<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ee366759505-5\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PSig<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">sumpsd<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">psdoutput <\/span><span class=\"crayon-v\">fin<\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">5<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-e\">fbin <\/span><span class=\"crayon-v\">fin<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">5<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">fbin<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">Signal <\/span><span class=\"crayon-e\">Power<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ee366759505-6\"><span class=\"crayon-e\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">PSig<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">getpow<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">psdoutput <\/span><span class=\"crayon-e\">fin <\/span><span class=\"crayon-v\">fbin<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">Signal <\/span><span class=\"crayon-e\">Power<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ee366759505-7\"><span class=\"crayon-e\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">PND<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">sumpsd<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-i\">psdoutput<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">min<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">bw <\/span><span class=\"crayon-v\">fin<\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">6<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">fbin<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">sumpsd<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">psdoutput <\/span><span class=\"crayon-v\">fin<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">6<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-e\">fbin <\/span><span class=\"crayon-v\">bw<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">Noise <\/span><span class=\"crayon-e\">Power<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ee366759505-8\"><span class=\"crayon-e\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">PN<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PND<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ee366759505-9\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">exbw<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ee366759505-10\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">for<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">SNR <\/span><span class=\"crayon-v\">measurement<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">exclude <\/span><span class=\"crayon-v\">odd<\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-e\">mode <\/span><span class=\"crayon-i\">distortion<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ee366759505-11\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">from<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">3<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-e\">fin <\/span><span class=\"crayon-st\">to<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">bw<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ee366759505-12\"><span class=\"crayon-e\">&nbsp;&nbsp;<\/span><span class=\"crayon-st\">for<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">k<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">floor<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">bw<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">fin<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ee366759505-13\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">fex1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">k<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">fin<\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">5<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-e\">fbin<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ee366759505-14\"><span class=\"crayon-e\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">fex2<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">min<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">bw<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">k<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">fin<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">5<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">fbin<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ee366759505-15\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">psdex<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">sumpsd<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">psdoutput <\/span><span class=\"crayon-e\">fex1 <\/span><span class=\"crayon-v\">fex2<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ee366759505-16\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">printf<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;k = %u Excluding distortion from %f kHz to %f kHz (%g &#8211; %g)\\n&#8221;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">k<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">fex1 <\/span><span class=\"crayon-e\">fex2 <\/span><span class=\"crayon-e\">PN <\/span><span class=\"crayon-v\">psdex<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ee366759505-17\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">PN<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PN<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">psdex<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ee366759505-18\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">exbw<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">exbw<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">fex2<\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-v\">fex1<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ee366759505-19\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">printf<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;Excluding distortion from %f kHz to %f kHz (%f kHz)\\n&#8221;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">fex1<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">1.0k<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">fex2<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">1.0k<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">fex2<\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-v\">fex1<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">1.0k<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ee366759505-20\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ee366759505-21\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">PN<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PN<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">exbw<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">bw<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-e\">compensate <\/span><span class=\"crayon-st\">for<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">frequencies <\/span><span class=\"crayon-e\">we <\/span><span class=\"crayon-e\">have <\/span><span class=\"crayon-i\">excluded<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ee366759505-22\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">assuming <\/span><span class=\"crayon-e\">white <\/span><span class=\"crayon-v\">noise<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ee366759505-23\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">SNDR<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PSig<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">PND<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ee366759505-24\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">SNR<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">PSig<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">PN<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ee366759505-25\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">SNDRdB<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">db10<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SNDR<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ee366759505-26\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">SNRdB<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">db10<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">SNR<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ee366759505-27\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-e\">printf<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;SNDR [%s\/%s\/%s]= %.2f dB\\n&#8221;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">library <\/span><span class=\"crayon-e\">cell <\/span><span class=\"crayon-e\">view <\/span><span class=\"crayon-v\">SNDRdB<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ee366759505-28\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-e\">printf<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;SNR [%s\/%s\/%s]= %.2f dB\\n&#8221;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">library <\/span><span class=\"crayon-e\">cell <\/span><span class=\"crayon-e\">view <\/span><span class=\"crayon-v\">SNRdB<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ee366759505-29\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-e\">sprintf<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-i\">wintitle<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">&#8220;PSD of Digitized PWM [%s\/%s\/%s] SNDR = %.0f dB NSR = %.0f dB&#8221;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">library <\/span><span class=\"crayon-e\">cell <\/span><span class=\"crayon-e\">view <\/span><span class=\"crayon-e\">SNDRdB <\/span><span class=\"crayon-v\">SNRdB<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line crayon-striped-line\" id=\"crayon-58cd7505290ee366759505-30\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-e\">plot<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">db10<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">clip<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">psdoutput<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">fin<\/span><span class=\"crayon-o\">&#8211;<\/span><span class=\"crayon-cn\">5<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">fbin<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">fin<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-cn\">5<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-v\">fbin<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">db10<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">psdoutput<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">?<\/span><span class=\"crayon-e\">expr <\/span><span class=\"crayon-e\">list<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\">&#8220;Desired Signal&#8221;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">wintitle<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<div class=\"crayon-line\" id=\"crayon-58cd7505290ee366759505-31\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-e\">xLimit<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">list<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">bw<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/table><\/div>\n<\/p><\/div>\n<p><!-- [Format Time: 0.0104 seconds] --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>However, here&#8217;s how I compute SNR\/SNDR from an FFT using Cadence Ocean\/Skill.<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3],"tags":[19,33,29,58,61,56,9,57,60,59,62,63],"class_list":["post-199","post","type-post","status-publish","format-standard","hentry","category-analog-pro","tag-adc","tag-cadence","tag-distortion","tag-fft","tag-noise","tag-ocean","tag-signal","tag-skill","tag-sndr","tag-snr","tag-spectrum","tag-window"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/poCEy-3d","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.circuitdesign.info\/blog\/wp-json\/wp\/v2\/posts\/199","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.circuitdesign.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.circuitdesign.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.circuitdesign.info\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.circuitdesign.info\/blog\/wp-json\/wp\/v2\/comments?post=199"}],"version-history":[{"count":8,"href":"https:\/\/www.circuitdesign.info\/blog\/wp-json\/wp\/v2\/posts\/199\/revisions"}],"predecessor-version":[{"id":1041,"href":"https:\/\/www.circuitdesign.info\/blog\/wp-json\/wp\/v2\/posts\/199\/revisions\/1041"}],"wp:attachment":[{"href":"https:\/\/www.circuitdesign.info\/blog\/wp-json\/wp\/v2\/media?parent=199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.circuitdesign.info\/blog\/wp-json\/wp\/v2\/categories?post=199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.circuitdesign.info\/blog\/wp-json\/wp\/v2\/tags?post=199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}