[ot][log] email parts

Undescribed Horrific Abuse, One Victim & Survivor of Many gmkarl at gmail.com
Thu Nov 17 03:31:47 PST 2022


i wonder if this email exchange is spoofed or hacked

i get a lot of weird emails, but this one seems so weird that it's
easier to consider.

i replied to ilsa (second attachment), but usually when I reply to
short messages like that I don't get a reply, or if I do often the
reply ignores most of what I said. maybe i can start publishing the
raw emails for funny exchanges like that.

many of our experiences demonstrated compromise of official
infrastructure (as far as i know this is likely many years ongoing
now), so it's reasonable to imagine signed + spoofed messages.

this person seems great but i don't know why they would reply to my
crazy fourier matrix thread
-------------- next part --------------
Delivered-To: gmkarl at gmail.com
Received: by 2002:a05:6359:61a:b0:dc:b30d:6501 with SMTP id eh26csp1499590rwb;
        Wed, 16 Nov 2022 18:14:02 -0800 (PST)
X-Received: by 2002:a5e:c809:0:b0:6cf:8cf0:91ac with SMTP id y9-20020a5ec809000000b006cf8cf091acmr436599iol.186.1668651242621;
        Wed, 16 Nov 2022 18:14:02 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1668651242; cv=none;
        d=google.com; s=arc-20160816;
        b=zivXBf2J1WNYau7Wgu03OUDSJgAUYps/brqp6yflSmH/dIa0/y/kulB9QeT66jp2LB
         tY9FsP9QHgg/HLP6RTALRH1hFjO4h8kOoH5XlTSfkwv+VPcegQPkqmM4Wpp0biP/v5oC
         29/kK5X4QvAEi2jLpNnt9c50+cTtYhtkf7gqdoUI4GfnEJAfzxVrsG7uXLr7ZFO0VvOw
         S7cWjJ8r66QhmCfUGIb9GN9DOBe6veG0UliR0uOY4dcayDfxpzfe2+YX6MObUM1vmJF9
         MFM2JZfEZ6aiFGqgftGbKQL59IxrjsxOqhqBbetTxlUbQxjV9tX9d3PgM5hdFAE9Cdnl
         XILA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
        h=to:subject:message-id:date:from:in-reply-to:references:mime-version
         :dkim-signature;
        bh=uWzWupM8ZsMAaL3UVaGRywmqII/kQMZRlpUlSxbz0cA=;
        b=hL5akYD0NDpaHxUsJVJOwngHm6zg+oflnzoEoIIDkgjc8s/8hMgbze2djAATu1RSHS
         Nk2VxZVhy272ZcLf9elTBlNDRhVxbake+ybDbbSlIj5PDSDrPekxwViNgiC11DwX8r1K
         RP5XESaXI2fg5FqToQcS4iKPBWFqxerQCeR8NqS/8yXceCPZH0uNLP227FhaNK3iOshb
         4VP6aMwHExhgZx6C4DXn0eYarpVi5mkN+3eXIPp77aqK8o1CNhdiK2bHKRhmcFpff72s
         fix0nJPpO58K7bKwjVclBlT0IPQFASn/ySZu0kX2ck/Ccg7sRHdhkGSy/+4N/MmgOv51
         bJFQ==
ARC-Authentication-Results: i=1; mx.google.com;
       dkim=pass header.i=@gmail.com header.s=20210112 header.b="Gg/TNszV";
       spf=pass (google.com: domain of ilsa.bartlett at gmail.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=ilsa.bartlett at gmail.com;
       dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com
Return-Path: <ilsa.bartlett at gmail.com>
Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41])
        by mx.google.com with SMTPS id m22-20020a023c16000000b003740078d360sor5175837jaa.123.2022.11.16.18.14.02
        for <gmkarl at gmail.com>
        (Google Transport Security);
        Wed, 16 Nov 2022 18:14:02 -0800 (PST)
Received-SPF: pass (google.com: domain of ilsa.bartlett at gmail.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41;
Authentication-Results: mx.google.com;
       dkim=pass header.i=@gmail.com header.s=20210112 header.b="Gg/TNszV";
       spf=pass (google.com: domain of ilsa.bartlett at gmail.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=ilsa.bartlett at gmail.com;
       dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=to:subject:message-id:date:from:in-reply-to:references:mime-version
         :from:to:cc:subject:date:message-id:reply-to;
        bh=uWzWupM8ZsMAaL3UVaGRywmqII/kQMZRlpUlSxbz0cA=;
        b=Gg/TNszVuIibGQMTfEOiNgswM6NfvAVP1lCZiLzb9ixhRkm4OZq7MezZyqdKCnhObX
         1XPJX0hcPolep1LryQm16BEAGI0C2XFVi50U4eViVLCR4snaGM+DhOMudPdpihR6ZGAT
         kxAckuwAE1+usqQyRDPJSY3Enr3Nu+7f/2Cq8eyccSGz4t95HQ/8P6yqSFdOG0m1U3XC
         vjPG7z++b7uBcw0neKUcXHvMRz+ntAXLZ6kXNG0muMrrwkvqpsNFKET5Gv8dmhZdpeAq
         oLDoWTxPHvOZvkryoB5/h0MIK8oZtesLHt5hgUIvKoL2FC+Mn9oJiBByD8d/JVnmLTFw
         5fpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=to:subject:message-id:date:from:in-reply-to:references:mime-version
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=uWzWupM8ZsMAaL3UVaGRywmqII/kQMZRlpUlSxbz0cA=;
        b=NuOjyZFIatRqDDMxWlYE9hIERDPupbGq3iKFIOWLVCl/osLWjMNsaqyj3oBFR+oPhu
         scveHJ2dxiof/tecSncxPMFSUS0ro4lIqvplbnl4GBZ1kRUvomcnWhzsCCLmJ5UsM8D3
         Msd61c34bIYIsRgFD8jLxTezTFW/9It/+cY+iRUoyADLSJ4e91P/NwrzHDAC8gWVOsBo
         qr+EiNflHyVv47vbuTleNuMnWXpPWfPj9HOeAEkcJhGV3UCGeubMzpkREk8IXbefuu6H
         cxzN5sMG7dzuhlozTxykh0LPrClRCivaq8NLOYf62vh2A5d94zzWBaCSwNOhupy9xw/M
         3yJQ==
X-Gm-Message-State: ANoB5pkYUSq+GXU7pnUF77HdDUV/W/IP7uHF9q6AZsGcdVyGixb9vMIM
	c/wPKxZCEQ+hEg2mnaxGJIfzGvYBi46Z/mgKEVCP8Okj
X-Google-Smtp-Source: AA0mqf5gKEzvK5p6y9UTPUt5ySyvfa6j2P5mwOGRo1pKNwhWc8/tvC6iaIJA5ayfjD9nuW7SPHJ9ORIxfUK6kUDDuuU=
X-Received: by 2002:a02:94c1:0:b0:375:fc59:201b with SMTP id
 x59-20020a0294c1000000b00375fc59201bmr161873jah.12.1668651242160; Wed, 16 Nov
 2022 18:14:02 -0800 (PST)
MIME-Version: 1.0
References: <CALL-=e6aEwRBzhZdUNdA_jtH1UB9xBZHU3W5io03K2ocCVkD_Q at mail.gmail.com>
 <CALL-=e4PiieVJ8pjwmdX8dO+LnbKbzcQfB6PT6RhAvXBJyxVNQ at mail.gmail.com>
 <CALL-=e5CrGr_fobVtPAonnRxQ0yg67d0BgR-OJkMz4ueo1hwQA at mail.gmail.com>
 <CALL-=e6yNBZ8bcPmzzGG=-p2PyzvYSiVGMk-rVJywBzfgt-FqQ at mail.gmail.com>
 <CALL-=e5jimZU1kd0dJM-MGWE-X=q-DWre0E7GK4QtPjsoxt5vg at mail.gmail.com>
 <CALL-=e4Y4eKu7cdb6ut37B3W6X8+UuTmsdM51rcaXHRackOufg at mail.gmail.com>
 <CALL-=e77V2scy9n5sosuwoSiiN9TB=c5fBoP_CGigLAckgCgHw at mail.gmail.com>
 <CALL-=e6pgnTgC16G98dHkSdix1v5T9RxpL7chSBBOenLBdZo3g at mail.gmail.com>
 <CALL-=e4tjDfBFB18vgBsRw2qsBVeztOZ7MZ2AEin+CMWd0jewQ at mail.gmail.com>
 <CALL-=e63X9qWhYtazCKisAGOYGnAsV6bWo6CwX=POLG6K0fXEA at mail.gmail.com>
 <CALL-=e645LwtMC9BG=TGeqzftmJWss+BEENpvrN3ft6Bwa8xqw at mail.gmail.com>
 <CALL-=e6LVc+8uE7nkN1REWM_+sUWU4yVHR5f41Qpjce8cD9OEw at mail.gmail.com>
 <CALL-=e43A2dWe=E=fz7=e31FJmXErHVjnQgJXua00OiN0Ge+iQ at mail.gmail.com>
 <CALL-=e4nzT4N1xt=uL9GnwTQq-ck8TD87jQ=PBwkguPkxXUNEg at mail.gmail.com>
 <CALL-=e4-VT=vhT1xP0HO+os97CvT98zf-YTpQySM35B7aXTHYw at mail.gmail.com>
 <CALL-=e4kUjxqWU4_H+O7u93+G39z6ha=95oootdKMSd3nevamA at mail.gmail.com>
 <CALL-=e4-DSwry8xS1HmDwOyy1ZGuGOP0MDGpu5Ozonpfkgoc5A at mail.gmail.com>
 <CALL-=e6d2KmyPDaWKU2VL0Gb8cPd1Rsb9mA3c4Qfc80=0P-ERw at mail.gmail.com>
 <CALL-=e6Q2LGyxwvvXiwEU05=fpKaM56n2AWxLfDaKA=wfuKCqQ at mail.gmail.com>
 <CALL-=e65fWYK+P_0VEPfPU2grsGPvFRs8Pe-jFzGLq8RtACJEw at mail.gmail.com>
 <CALL-=e74EjfgbQrhURT9ciQAYLFWFdnrpqtXkKEt6iamAsjxLQ at mail.gmail.com>
 <CALL-=e4XPCqH2qTSb_u_Eej1pzF+z3OAUbVWnD+_orL=aWOf-A at mail.gmail.com>
 <CALL-=e4rjqfQhbYzE8czF+KiNe5mcQaGedhA7JLPwK=YSsGhWA at mail.gmail.com>
 <CALL-=e46_RB1BpHDmgTpKMbKT90XG_05-Lus4bxJBYugCHah8w at mail.gmail.com>
 <CALL-=e4PqweYWKWbwXuNK3t8caVD3NyVbfxMe7YxSQCWUhQD1A at mail.gmail.com>
 <CALL-=e6VWNmnfcavQVuV6nxaitS0BpU469VGGGaKCxmT9Sk21Q at mail.gmail.com>
 <CALL-=e7qCj+zqPBH=OHOUHiMCkqQd+HnAv3nGES9HrqtjEZftg at mail.gmail.com>
 <CALL-=e4Qy20uVDk0dH5e6mdx3G-a9goy1DRKq-iJ-kdkpPrbAw at mail.gmail.com>
 <CALL-=e7zJvA2zmcc=29-63MQMe5CzuwZB_ZoduVo3EjLnrhPLQ at mail.gmail.com>
 <CALL-=e5MqayeT+HWRBHbRP_sbfZZ7aA6fvbV4oop6VbOq2mhpA at mail.gmail.com>
 <CALL-=e4qaVnqGNLfD_NDbBcQiuN=HWxBmWJF+kRLmO8_2xnAYQ at mail.gmail.com>
 <CALL-=e4R3QEZf9WKnGOE6bh5CcGpBezNQyZ4Z6RdA_VALp93HA at mail.gmail.com>
 <CALL-=e7EYPFPfGsfAUFUJmHuwkfq=ytVgmOu9Dq-0ksoprGckg at mail.gmail.com>
 <CALL-=e5SE40=qM4NcsRzuYbu_34KY1SFz-d5npzYYMkxqEcn4w at mail.gmail.com>
 <CALL-=e60+7GMHXTYAXwEJ_H2+V2Eu_uJ=XFOcy91D_SJZ05_iw at mail.gmail.com>
 <CALL-=e6cG0BTr1yNeV3yfvmB3GkVuWhghe67bkJoZWu_P7iDxA at mail.gmail.com>
 <CALL-=e5b4wY-cLjpog847H9GwiZ3=AdjmYCgP9ta85oi-D+1Sg at mail.gmail.com>
 <CALL-=e5Wax=NtP1tTB+NCkbahaPfQHBKV8Pz_0Tfb55rgwZU7A at mail.gmail.com>
 <CALL-=e79Rxf-jpGr6YwCsnBd3wnY_CdPkBzc7XLFrYCP+=4v3Q at mail.gmail.com>
 <CALL-=e6FpvvdoKYaoKTtLO-g2=1CdFEBH_Wkeh-ViiR092nV4g at mail.gmail.com>
 <CALL-=e5yONoyxyNiMGUPWG1BYU-jrhXWj8i8dNh5nkCP3GrZiA at mail.gmail.com>
 <CALL-=e5JBaoG4ewKWp8iyokwmLzvMuq08kAuMNUcY+SmRqm+4g at mail.gmail.com>
 <CALL-=e5Q-GiWXgBKXe4CeXMgQwZreNCVNfOgwj1nZ4pXb367rA at mail.gmail.com>
 <CALL-=e5V=G8vu2giJWg4i+XG51wCQy2PdtbtoOCtLWRBfc+fnw at mail.gmail.com>
 <CALL-=e5RinnAM8=taCXsyiJ0XPXoq9Zt1YJ-a5NLE52+=tgWtw at mail.gmail.com>
 <CALL-=e5uf3eUrgE2s3ytoGdGgbynpDOEiHr8KCW5+6CiLJ-a=A at mail.gmail.com>
 <CALL-=e5kCu-KeH=QyVAdmaEN14tFYtkxWJGfdkj0t=avYou6Aw at mail.gmail.com>
 <CALL-=e6XimNdaV9frkj53+eZ86--AxVUV6uzMeuvZ7dVZqot0Q at mail.gmail.com>
 <CALL-=e7T1qnkxYAnwyh7JF4Ebpn4xhcFfN-9bzgraVSDk1=w3g at mail.gmail.com>
 <CALL-=e6LWO2O-9V5obNYhDzzOatQ43KGkASerRs7WSBzrUzLDQ at mail.gmail.com>
 <CALL-=e5HAc_EJ-1G4bn4AZpwfi=8E4n4_KwHNSbL=-Fm-me3QQ at mail.gmail.com>
 <CALL-=e58O-7zPhZX9EW9w7YbKJ4AZaJuimRBkfsPY-ROcBmFmQ at mail.gmail.com>
 <CALL-=e6ur0c2AXSvGw2w2eeJP1qi131F2s-gJjWAzZm1k39P1w at mail.gmail.com>
 <CALL-=e5kaPFpd_3qg3aDvxjsnwg0XcFc9GvbunFkL5b8fhks_Q at mail.gmail.com>
 <CALL-=e7J_kUa7dCQvmMejv627XsqQejNBK37VfdEzgf5vrPRMQ at mail.gmail.com>
 <CALL-=e4-zXD27KmAb8aseQrFwBBNotLUXFT5-3Dxjg4WO5R2ZA at mail.gmail.com>
 <CALL-=e572Vof+O=yip1g1BPSLq=0Z2KrSsQfpyzFt1FGAJwgtg at mail.gmail.com>
 <CALL-=e4cYnDHqa7+rx+s7BFGkEjzAABXqCY61BXqzgRoEfvQOA at mail.gmail.com>
 <CALL-=e4R8gBTAqkpEJFWwdumP-Ro-Fu-jfRJF1dcuQ61XOsYTA at mail.gmail.com>
 <CALL-=e4Ec2-pfUKcWbRDz-pdnhRKH-5BVL8qryQdC-FSnVTc+w at mail.gmail.com>
 <CALL-=e7KB5yRNUvw4XUPPB4jGmHP11E+u2Lzv-zWZdKn7hcrJQ at mail.gmail.com>
 <CALL-=e51YTRAmM3u+FmCcPx4=waKn4zNOixe7519vDLo2xVXuw at mail.gmail.com>
 <CALL-=e5o2QfsAG++gsBRjqYZPaP=PezK6AuL58d9ALXM7a+=1Q at mail.gmail.com>
 <CALL-=e4KobbPLGSTKyz4MssTj2ESuzOmOWEkZHDAvsZZECxJPA at mail.gmail.com>
 <CALL-=e5rk3P6NPUnEgMQxy5+_WBf9UXEpza-P8eZT1CemxSt+g at mail.gmail.com>
 <CALL-=e5QDgRD8QiO5pXwQK_=zVN3D4_RXGzcY72BBZfriWX0Zg at mail.gmail.com>
 <CALL-=e7PztZtSciqVOtWcu1JSjRtnFLUU52JdyBect50qVXCSQ at mail.gmail.com>
 <CALL-=e7Wkpv9uonFk24DrbivOugrwipVdYmNXGYrNGhY4pAUSA at mail.gmail.com>
 <CALL-=e6zN--zrEv4QYexMADp5cbpGYwFwCS0X1pEWFsUfjiVUQ at mail.gmail.com>
 <CALL-=e56=vM77sBTO3t-wosx2oTD7r61jBH_zHYGAePGRmTNaQ at mail.gmail.com>
 <CALL-=e5xnGoxqpTPbM08YTCtkPUqEJNM-CGYbv_Z4jrFWFweHA at mail.gmail.com>
 <CALL-=e6dWx+7XNZnWZsNb3H2Aq8Rzdv2SyH3-84nnbdws1__bA at mail.gmail.com>
 <CALL-=e4Xp8mMLMGSV02Ac28ogVLKwVmjgbc=k0Krf8J=Q_WcxA at mail.gmail.com>
 <CALL-=e62uyMjJk0mb4_o-g18ZYNvMuKL28J+kr7Q=J7=3R38uQ at mail.gmail.com>
 <CALL-=e58G1YH3AgZZuzhH2gJYQWApYaJDXzuxoeDVxda0Vi5Eg at mail.gmail.com>
 <CALL-=e7MUaqVGKe1WYKr-nDtkM4S1PJU6mrH1iCihFEYo0OAyQ at mail.gmail.com>
 <CALL-=e4NRN=rj-fqkdS46PA=2wE_hU5-SiP5fv+-Abe1GXA1Pw at mail.gmail.com>
 <CALL-=e6QXyuAiV+VYK1rnPnB-EGKjQFE36Kny6yT827E8Hc9Gw at mail.gmail.com>
 <CALL-=e4=iww6BNsS2yPAwFfivGL=tdJt4qLijdHYsVsjQUiU4w at mail.gmail.com>
 <CALL-=e7824=d6jf9sVZ4G=bnuFSw7UQ6Y-=M8Qj8QSOTp2ReXw at mail.gmail.com>
 <CALL-=e62PNou-pUE0yLm4HsnTRCYWO=AqHKAYO1sCFyv9ZZ9aw at mail.gmail.com>
 <CALL-=e4dKBPG4+n6iKXvWqrDOYtfLK+OccQuQUxVyQ6fq6bo9g at mail.gmail.com>
 <CALL-=e67D_5zemoj2xDNyAcezUj8sZdc-HyPDv5snmH75D=Q8Q at mail.gmail.com>
 <CALL-=e5NrVD_PRiVaJKuA+v=KvC=6eeutU02BO2CamSR=r+u_w at mail.gmail.com>
 <CALL-=e6me6W9OGeYvoEZwWBqjHcyCX-NyZzMO2riZ5J3NB3eUg at mail.gmail.com>
 <CALL-=e4oJhnEtwoME51yDTvUdHbwHJYfOwhzKWqFhnLpszBPdA at mail.gmail.com>
 <CALL-=e6CGugCjj+uaCsB_SqTmPgpAqJj-K6CUxG2oAaTSanw0Q at mail.gmail.com>
 <CALL-=e4B6XQ6QPYVfdcM6KxC=rjO6kgrdxzHiD4Xi4b6vp5VCA at mail.gmail.com>
 <CALL-=e64bghzUOkPh-RJf=SLk-6a68hwEbj94uVOUZStUjUq0Q at mail.gmail.com>
 <CALL-=e7GiqQJZNoJ2heObeo79uRnt5TycEAa_V52EuE-WEkFtA at mail.gmail.com>
 <CALL-=e4eXTnXkv3JX1_R4ohOCdjsLfX_KicYmGQc6i3Git3QDQ at mail.gmail.com>
 <CALL-=e7dCOx0jCzz6V=EKtgJYnnmgYCaYn6prHNSeF-KE=qF3g at mail.gmail.com>
 <CALL-=e6HBq-FeUdcK8hJg0t24z3qvZ+NOmWE79R94hyCT1Te-Q at mail.gmail.com>
 <CALL-=e4jH-MAJDgEJVa5Zkzs8P2k4u7oUzq34k8eYvPEuz9O0g at mail.gmail.com>
 <CALL-=e6ChztL3JXg7_ZZFF7cmmZmXdexGuRDAdEZS3pVNcbB6g at mail.gmail.com>
 <CALL-=e6huNYE+tROw4=ox4JX2zoYfY+cO7Yv-aPbtnYVvZ7vEQ at mail.gmail.com>
 <CALL-=e7VwCc_VoGAHfJ_CYKQV4h=BOKP8+go1U0=8QhpRxPRSQ at mail.gmail.com>
 <CALL-=e5RKf+Ut1=WTbg8w=99Dz_3GqyLgNEJ_2JB-jt0Oxe+PA at mail.gmail.com>
 <CALL-=e74DBhpm+ou6ZbH-ONO0VX__rK7OLEgyF4jap=N8G1bHg at mail.gmail.com>
 <CALL-=e61SFtUEY45GZczY0-yQ=O2vrrcCPNcEbrRA2tNpBqXXw at mail.gmail.com> <CALL-=e7M5gpt8cCC1Zgp9JWk+nsuBsq7YKV9ce9BftSvToWc=g at mail.gmail.com>
In-Reply-To: <CALL-=e7M5gpt8cCC1Zgp9JWk+nsuBsq7YKV9ce9BftSvToWc=g at mail.gmail.com>
From: ilsa <ilsa.bartlett at gmail.com>
Date: Wed, 16 Nov 2022 18:13:49 -0800
Message-ID: <CAN3PQpGQhfoX+MDvCrUUXN0QGvFmUjazhNFDL2HZb_kWDAv1Ng at mail.gmail.com>
Subject: Re: [ot][spam][random][crazy][random][crazy]
To: "Undescribed Horrific Abuse, One Victim & Survivor of Many" <gmkarl at gmail.com>
Content-Type: multipart/alternative; boundary="0000000000008b04eb05eda124c0"

--0000000000008b04eb05eda124c0
Content-Type: text/plain; charset="UTF-8"

Thanks

On Wed, Nov 16, 2022, 5:38 PM Undescribed Horrific Abuse, One Victim &
Survivor of Many <gmkarl at gmail.com> wrote:

> according to numpy my square wave matrix is singular.
>
> something for me to think about!
>
> i'm guessing a big issue is that my wavelet function doesn't have a
> way to shift phase.
>
> i don't really know much about wavelets; it's a word i remember from
> being a teenager, learning about these things in the resources i knew
> how to find.
>
> i don't know if it's the cause, but my wavelet will need a way to have
> phase.
>
> i could interpret the complex argument in terms of angle and
> magnitude, and simply phase shift the output. this seems like it would
> work fine, at first. but i'm not sure if it would survive the whole
> process, with no complex output.
>
> the trick with the sinusoids is that in frequency space, the phase is
> held as an angle in the complex plane.
> when the freq2time matrix is created, where does the complex output
> come from, and what meaning does it hold?
> it has only real-domain frequencies, and yet produces a matrix that
> converts from complex frequency.
>
> it takes the frequencies, and scales them by the offsets, and turns
> that into time parameters
> it passes the time parameters to the sinusoids.
> this produces a matrix that can process complex frequency data, and
> convert it to time data.
> each frequency is a magnitude and a phase.
>
> i can make a function that takes complex frequency data
> but the frequencies that are passed in are not complex: they are
> negative and positive.
> where the negative is the complex conjugate i.e. the angle iand hence
> phase is treated as negative.
>
> there are various things i could try but i'm trying to figure out
> what's going on in general.
>
> exp(2i pi x) produces a complex number rotated with an angle x
>
> how does this produce real-domain data? if i pass in a single
> frequency with a 0 angle, what does it do?
>
> i tried this:
> (Pdb) p np.array([0,1,0,1]) @ create_freq2time(4)
> array([ 5.00000000e-01+0.j,  3.06161700e-17+0.j, -5.00000000e-01+0.j,
>        -9.18485099e-17+0.j])
>
> so how does that work?
>
> (Pdb) p create_freq2time(4).round(2)
> array([[ 0.25+0.j  ,  0.25+0.j  ,  0.25+0.j  ,  0.25+0.j  ],
>        [ 0.25+0.j  ,  0.  +0.25j, -0.25+0.j  , -0.  -0.25j],
>        [ 0.25+0.j  , -0.25-0.j  ,  0.25+0.j  , -0.25-0.j  ],
>        [ 0.25+0.j  ,  0.  -0.25j, -0.25-0.j  , -0.  +0.25j]])
>
> columns are freq, rows are samps
> The first sample gets 0.25 + 0.25 = 0.5
> The second sample is the only one with complex domain stuff, and its
> 0.25 components cancel each other.
> The third has -0.25 at the two indices.
> The fourth cancels again.
>
> I'm going to paste it again.
> array([[ 0.25+0.j  ,  0.25+0.j  ,  0.25+0.j  ,  0.25+0.j  ],
>        [ 0.25+0.j  ,  0.  +0.25j, -0.25+0.j  , -0.  -0.25j],
>        [ 0.25+0.j  , -0.25-0.j  ,  0.25+0.j  , -0.25-0.j  ],
>        [ 0.25+0.j  ,  0.  -0.25j, -0.25-0.j  , -0.  +0.25j]])
>
> It's 4 complex sinusoids, but they oppose each other in the complex
> domain. Because a real-valued signal has both negative and complex
> frequencies equal, and because the complex component of the wavelet
> function is odd, the two cancel.
>
> That would work fine for phaseless square wave data. You'd provide an
> even function square wave for the real component, and an odd function
> square wave for the imaginary component.
>
> What about phase offset?
>
> (Pdb) p (np.array([0,1+1j,0,1+1j]) @ create_freq2time(4)).round(3)
> array([ 0.5+0.5j,  0. +0.j , -0.5-0.5j, -0. -0.j ])
> When I specify complex numbers for the frequencies, it actually
> produces a wave with the same phase, that has complex value, not a
> phased wave !
>
> I thought the angle of the frequency was the phase, but it isn't?
>
> (Pdb) p np.fft.ifft(np.array([0,1+1j,0,1+1j])).round(3)
> array([ 0.5+0.5j,  0. +0.j , -0.5-0.5j,  0. +0.j ])
>
> That appears to be so.
>
> That doesn't seem very useful to me, it seems it would be more useful
> if it were.
>
> Ohhhh I need to use the complex conjugate!
>
> (Pdb) p (np.array([0,1+1j,0,1-1j]) @ create_freq2time(4)).round(3)
> array([ 0.5+0.j, -0.5+0.j, -0.5+0.j,  0.5+0.j])
>
> There we go. I offset it by 45 degrees?
>
> (Pdb) p (np.array([0,1,0,1]) @ create_freq2time(4)).round(3)
> array([ 0.5+0.j,  0. +0.j, -0.5+0.j, -0. +0.j])
>
> I'm guessing the peaks for 45 degrees were between the samples. 90
> might be clearer.
>
> Yeah here's 90 degrees offset:
> (Pdb) p (np.array([0,1j,0,-1j]) @ create_freq2time(4)).round(3)
> array([ 0. +0.j, -0.5+0.j, -0. +0.j,  0.5+0.j])
>
> So how does that happen?
> (Pdb) p create_freq2time(4).round(3)
> array([[ 0.25+0.j  ,  0.25+0.j  ,  0.25+0.j  ,  0.25+0.j  ],
>        [ 0.25+0.j  ,  0.  +0.25j, -0.25+0.j  , -0.  -0.25j],
>        [ 0.25+0.j  , -0.25-0.j  ,  0.25+0.j  , -0.25-0.j  ],
>        [ 0.25+0.j  ,  0.  -0.25j, -0.25-0.j  , -0.  +0.25j]])
>
> Passing (0,1j,0,-1j) ...
> The first two frequencies have opposing components so they cancel.
> That would work with a 90 degree square wave.
> In the second .. it's 1j and -1j. the j's multiply to -1, and we get
> -.25 and -.25, which sum to 0.5 .
>
> the 90 degree case would work with square waves. but why does it work
> for sinusoids?
> cos(x) + sin(x)j = exp(2j pi x) is applied, not to the input data x,
> but rather to the frequency.
> then when the input data comes in, it is multiplied against that result.
> so if it's real, the sinusoid components cancel and the cosine is
> extracted. this then produces a real cosine wave.
> if it's imaginary and self-opposing, the cosines cancel from the
> self-opposingness, whereas the sines amplify, producing a wave that is
> 90 degrees off.
>
> how would a 45 degree wave be produced? what is that?
> it seems it would be a sum of the 0 degree and 90 degree waves, not sure.
>
> i looked at trigonometric identities and i found a relation that looked
> complex.
> let's see how it goes
>
> (Pdb) p create_freq2time(4).round(3)
> array([[ 0.25+0.j  ,  0.25+0.j  ,  0.25+0.j  ,  0.25+0.j  ],
>        [ 0.25+0.j  ,  0.  +0.25j, -0.25+0.j  , -0.  -0.25j],
>        [ 0.25+0.j  , -0.25-0.j  ,  0.25+0.j  , -0.25-0.j  ],
>        [ 0.25+0.j  ,  0.  -0.25j, -0.25-0.j  , -0.  +0.25j]])
> (Pdb) p (np.array([0,1+1j,0,1-1j]) @ create_freq2time(4)).round(3)
> array([ 0.5+0.j, -0.5+0.j, -0.5+0.j,  0.5+0.j])
>
> first sample: (1+1j)(0.25) + (1-1j)(0.25) = 0.5
> second sample: (1+1j)(0.25j) + (1-1j)(-0.25j) = -0.5
>
> so the first sample is just the real component
> then again the second sample is just the complex component
> it really is two waves, rising at different times, offset by 90 degrees,
> or such
>
> (Pdb) p (np.array([0,0.5+1j,0,0.5-1j]) @ create_freq2time(4)).round(3)
> array([ 0.25+0.j, -0.5 +0.j, -0.25+0.j,  0.5 +0.j])
>
> One could think of it as outputting the data in pairs.
> It outputs a real component, then a complex component, both in the real
> domain.
> Because one is offset by 90 degrees, this can provide for the
> construction of waves smoothly.
>
> It may work for the square wave.
>
> I guess I'll try it.
>
> 1600
>
> I made a complex square wave. Basically the real and imaginary parts
> are juts off by 1/4 .
> The forward matrix it produces has an inverse, and the pseudoinverse
> passes np.allclose() with it.
> The assertion still doesn't pass, but again it should now be a closed
> system.
>
> 1603 I'm looking a little at the real-domain matrix produced for the
> square wave, and I'm not yet sure about it.
>
> (Pdb) list
> 174         forward_mat = np.linalg.pinv(inverse_mat)
> 175         if not is_complex:
> 176             # todo: remove test data
> 177             time_data = np.random.random(inverse_mat.shape[1])
> 178             freq_data = time_data @ forward_mat
> 179  ->         forward_mat = np.concatenate([
> 180                 forward_mat[:,:tail_idx],
> 181                 forward_mat[:,tail_idx:neg_start_idx].conj()
> 182             ], axis=1)
> 183         return forward_mat
> 184
> (Pdb) normal_forward_mat = np.linalg.pinv(create_freq2time(time_count,
> freqs))
> (Pdb) p normal_forward_mat[6].round(3)
> array([ 1.   +0.j   , -0.707-0.707j, -0.   +1.j   ,  0.707-0.707j,
>        -1.   -0.j   ,  0.707+0.707j, -0.   -1.j   , -0.707+0.707j,
>         1.   -0.j   , -0.707-0.707j, -0.   +1.j   ,  0.707-0.707j,
>        -1.   -0.j   ,  0.707+0.707j,  0.   -1.j   , -0.707+0.707j])
> (Pdb) p forward_mat[6].round(3)
> array([-0.5+0.5j,  0.5+0.5j, -0.5-0.5j, -0.5+0.5j,  0.5-0.5j, -0.5-0.5j,
>         0.5+0.5j,  0.5-0.5j, -0.5+0.5j,  0.5+0.5j, -0.5-0.5j, -0.5+0.5j,
>         0.5-0.5j, -0.5-0.5j,  0.5+0.5j,  0.5-0.5j])
>
> In the normal dft matrix, the negative frequencies that occupy the
> second half, are the reverse-order complex conjugates of the positive
> frequencies that occupy the first half.
> In the forward_mat here, where the the square wave is being used, this
> complex conjugate situation does not hold. It's 1609.
>
> Basically, the even-numbered indices are conjugates, whereas the odds
> are opposites.
>
> It might be possible this could relate to the evaluation of the square
> wave at its discontinuous points.
>
> With real frequencies, the implication is that there are never
> frequencies equal to 0.125, for example. Looking a little further I'm
> not immediately discerning a pattern.
>
> 1640
>
> having trouble developing behaviors and energy and stuff around this next
> step.
>
> i'm looking at inverse_mat and it seems to have a similar issue.
>
> i'm thinking that the real component of the waveform is not an even
> function, and that that is the issue here.
>
> trying out numbers, it kind of looks like the wavelet is getting
> indexed in a way that is rounding negative, rather than toward zero.
> that's something i can look into!
>
> this is what I have:
>
> SINE = lambda x: np.sin(2 * np.pi * x)
> SQUARE = lambda x: np.floor(x * 2) * 2 - 1
>
> def complex_wavelet(wavelet, x):
>     return wavelet((x + 0.25) % 1) + wavelet(x % 1) * 1j
>
> and I'm getting this:
> >>> complex_wavelet(SQUARE, -.25)
> (-1+1j)
> >>> complex_wavelet(SQUARE, .25)
> (1-1j)
>
> the real component should have the same sign for correct behavior.
>
> other than the cutoff point, it is even:
> >>> complex_wavelet(SQUARE, .24)
> (-1-1j)
> >>> complex_wavelet(SQUARE, -.24)
> (-1+1j)
> >>> complex_wavelet(SQUARE, .26)
> (1-1j)
> >>> complex_wavelet(SQUARE, -.26)
> (1+1j)
>
> >>> SINE(0)
> 0.0
> >>> SINE(0.5)
> 1.2246467991473532e-16
> >>> SQUARE(0)
> -1.0
> >>> SQUARE(0.5)
> 1.0
>
> The sine function has 0 and 1/2 equal, whereas the square function
> does not. If the square function had 1.0 | x==0 or 1.0 | x > 0.5, it
> would work, but instead it has 1.0 | x >= 0.5 .
>
> The difference stems from floor(x * 2). With the floor function, lower
> values are included in the range, and upper values are not.
>
> I wonder if it would be appropriate to offset things by 0.125 simply
> to make the behavior look even when sampled at the points : but this
> wouldn't work for denser sampling, of course, which I imagine is
> needed.
>
> 1703
> I changed SQUARE to (x > 0.5) * 2 - 1, which kinda works because True
> is treated like 1 and False treated like 0. Assertion still failing.
>
> Note: if an even function is required for a wavelet to work, it would
> make sense to define them as even functions.
>
> 2036
> I ended up doing other things. The matrix did look better with the
> change. I would like to look at it more.
>

--0000000000008b04eb05eda124c0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">Thanks</div><br><div class=3D"gmail_quote"><div dir=3D"lt=
r" class=3D"gmail_attr">On Wed, Nov 16, 2022, 5:38 PM Undescribed Horrific =
Abuse, One Victim & Survivor of Many <<a href=3D"mailto:gmkarl at gmail=
.com">gmkarl at gmail.com</a>> wrote:<br></div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1e=
x">according to numpy my square wave matrix is singular.<br>
<br>
something for me to think about!<br>
<br>
i'm guessing a big issue is that my wavelet function doesn't have a=
<br>
way to shift phase.<br>
<br>
i don't really know much about wavelets; it's a word i remember fro=
m<br>
being a teenager, learning about these things in the resources i knew<br>
how to find.<br>
<br>
i don't know if it's the cause, but my wavelet will need a way to h=
ave phase.<br>
<br>
i could interpret the complex argument in terms of angle and<br>
magnitude, and simply phase shift the output. this seems like it would<br>
work fine, at first. but i'm not sure if it would survive the whole<br>
process, with no complex output.<br>
<br>
the trick with the sinusoids is that in frequency space, the phase is<br>
held as an angle in the complex plane.<br>
when the freq2time matrix is created, where does the complex output<br>
come from, and what meaning does it hold?<br>
it has only real-domain frequencies, and yet produces a matrix that<br>
converts from complex frequency.<br>
<br>
it takes the frequencies, and scales them by the offsets, and turns<br>
that into time parameters<br>
it passes the time parameters to the sinusoids.<br>
this produces a matrix that can process complex frequency data, and<br>
convert it to time data.<br>
each frequency is a magnitude and a phase.<br>
<br>
i can make a function that takes complex frequency data<br>
but the frequencies that are passed in are not complex: they are<br>
negative and positive.<br>
where the negative is the complex conjugate i.e. the angle iand hence<br>
phase is treated as negative.<br>
<br>
there are various things i could try but i'm trying to figure out<br>
what's going on in general.<br>
<br>
exp(2i pi x) produces a complex number rotated with an angle x<br>
<br>
how does this produce real-domain data? if i pass in a single<br>
frequency with a 0 angle, what does it do?<br>
<br>
i tried this:<br>
(Pdb) p np.array([0,1,0,1]) @ create_freq2time(4)<br>
array([ 5.00000000e-01+0.j,=C2=A0 3.06161700e-17+0.j, -5.00000000e-01+0.j,<=
br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0-9.18485099e-17+0.j])<br>
<br>
so how does that work?<br>
<br>
(Pdb) p create_freq2time(4).round(2)<br>
array([[ 0.25+0.j=C2=A0 ,=C2=A0 0.25+0.j=C2=A0 ,=C2=A0 0.25+0.j=C2=A0 ,=C2=
=A0 0.25+0.j=C2=A0 ],<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0[ 0.25+0.j=C2=A0 ,=C2=A0 0.=C2=A0 +0.25j, -0.25+=
0.j=C2=A0 , -0.=C2=A0 -0.25j],<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0[ 0.25+0.j=C2=A0 , -0.25-0.j=C2=A0 ,=C2=A0 0.25+=
0.j=C2=A0 , -0.25-0.j=C2=A0 ],<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0[ 0.25+0.j=C2=A0 ,=C2=A0 0.=C2=A0 -0.25j, -0.25-=
0.j=C2=A0 , -0.=C2=A0 +0.25j]])<br>
<br>
columns are freq, rows are samps<br>
The first sample gets 0.25 + 0.25 =3D 0.5<br>
The second sample is the only one with complex domain stuff, and its<br>
0.25 components cancel each other.<br>
The third has -0.25 at the two indices.<br>
The fourth cancels again.<br>
<br>
I'm going to paste it again.<br>
array([[ 0.25+0.j=C2=A0 ,=C2=A0 0.25+0.j=C2=A0 ,=C2=A0 0.25+0.j=C2=A0 ,=C2=
=A0 0.25+0.j=C2=A0 ],<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0[ 0.25+0.j=C2=A0 ,=C2=A0 0.=C2=A0 +0.25j, -0.25+=
0.j=C2=A0 , -0.=C2=A0 -0.25j],<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0[ 0.25+0.j=C2=A0 , -0.25-0.j=C2=A0 ,=C2=A0 0.25+=
0.j=C2=A0 , -0.25-0.j=C2=A0 ],<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0[ 0.25+0.j=C2=A0 ,=C2=A0 0.=C2=A0 -0.25j, -0.25-=
0.j=C2=A0 , -0.=C2=A0 +0.25j]])<br>
<br>
It's 4 complex sinusoids, but they oppose each other in the complex<br>
domain. Because a real-valued signal has both negative and complex<br>
frequencies equal, and because the complex component of the wavelet<br>
function is odd, the two cancel.<br>
<br>
That would work fine for phaseless square wave data. You'd provide an<b=
r>
even function square wave for the real component, and an odd function<br>
square wave for the imaginary component.<br>
<br>
What about phase offset?<br>
<br>
(Pdb) p (np.array([0,1+1j,0,1+1j]) @ create_freq2time(4)).round(3)<br>
array([ 0.5+0.5j,=C2=A0 0. +0.j , -0.5-0.5j, -0. -0.j ])<br>
When I specify complex numbers for the frequencies, it actually<br>
produces a wave with the same phase, that has complex value, not a<br>
phased wave !<br>
<br>
I thought the angle of the frequency was the phase, but it isn't?<br>
<br>
(Pdb) p np.fft.ifft(np.array([0,1+1j,0,1+1j])).round(3)<br>
array([ 0.5+0.5j,=C2=A0 0. +0.j , -0.5-0.5j,=C2=A0 0. +0.j ])<br>
<br>
That appears to be so.<br>
<br>
That doesn't seem very useful to me, it seems it would be more useful<b=
r>
if it were.<br>
<br>
Ohhhh I need to use the complex conjugate!<br>
<br>
(Pdb) p (np.array([0,1+1j,0,1-1j]) @ create_freq2time(4)).round(3)<br>
array([ 0.5+0.j, -0.5+0.j, -0.5+0.j,=C2=A0 0.5+0.j])<br>
<br>
There we go. I offset it by 45 degrees?<br>
<br>
(Pdb) p (np.array([0,1,0,1]) @ create_freq2time(4)).round(3)<br>
array([ 0.5+0.j,=C2=A0 0. +0.j, -0.5+0.j, -0. +0.j])<br>
<br>
I'm guessing the peaks for 45 degrees were between the samples. 90<br>
might be clearer.<br>
<br>
Yeah here's 90 degrees offset:<br>
(Pdb) p (np.array([0,1j,0,-1j]) @ create_freq2time(4)).round(3)<br>
array([ 0. +0.j, -0.5+0.j, -0. +0.j,=C2=A0 0.5+0.j])<br>
<br>
So how does that happen?<br>
(Pdb) p create_freq2time(4).round(3)<br>
array([[ 0.25+0.j=C2=A0 ,=C2=A0 0.25+0.j=C2=A0 ,=C2=A0 0.25+0.j=C2=A0 ,=C2=
=A0 0.25+0.j=C2=A0 ],<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0[ 0.25+0.j=C2=A0 ,=C2=A0 0.=C2=A0 +0.25j, -0.25+=
0.j=C2=A0 , -0.=C2=A0 -0.25j],<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0[ 0.25+0.j=C2=A0 , -0.25-0.j=C2=A0 ,=C2=A0 0.25+=
0.j=C2=A0 , -0.25-0.j=C2=A0 ],<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0[ 0.25+0.j=C2=A0 ,=C2=A0 0.=C2=A0 -0.25j, -0.25-=
0.j=C2=A0 , -0.=C2=A0 +0.25j]])<br>
<br>
Passing (0,1j,0,-1j) ...<br>
The first two frequencies have opposing components so they cancel.<br>
That would work with a 90 degree square wave.<br>
In the second .. it's 1j and -1j. the j's multiply to -1, and we ge=
t<br>
-.25 and -.25, which sum to 0.5 .<br>
<br>
the 90 degree case would work with square waves. but why does it work<br>
for sinusoids?<br>
cos(x) + sin(x)j =3D exp(2j pi x) is applied, not to the input data x,<br>
but rather to the frequency.<br>
then when the input data comes in, it is multiplied against that result.<br=
>
so if it's real, the sinusoid components cancel and the cosine is<br>
extracted. this then produces a real cosine wave.<br>
if it's imaginary and self-opposing, the cosines cancel from the<br>
self-opposingness, whereas the sines amplify, producing a wave that is<br>
90 degrees off.<br>
<br>
how would a 45 degree wave be produced? what is that?<br>
it seems it would be a sum of the 0 degree and 90 degree waves, not sure.<b=
r>
<br>
i looked at trigonometric identities and i found a relation that looked com=
plex.<br>
let's see how it goes<br>
<br>
(Pdb) p create_freq2time(4).round(3)<br>
array([[ 0.25+0.j=C2=A0 ,=C2=A0 0.25+0.j=C2=A0 ,=C2=A0 0.25+0.j=C2=A0 ,=C2=
=A0 0.25+0.j=C2=A0 ],<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0[ 0.25+0.j=C2=A0 ,=C2=A0 0.=C2=A0 +0.25j, -0.25+=
0.j=C2=A0 , -0.=C2=A0 -0.25j],<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0[ 0.25+0.j=C2=A0 , -0.25-0.j=C2=A0 ,=C2=A0 0.25+=
0.j=C2=A0 , -0.25-0.j=C2=A0 ],<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0[ 0.25+0.j=C2=A0 ,=C2=A0 0.=C2=A0 -0.25j, -0.25-=
0.j=C2=A0 , -0.=C2=A0 +0.25j]])<br>
(Pdb) p (np.array([0,1+1j,0,1-1j]) @ create_freq2time(4)).round(3)<br>
array([ 0.5+0.j, -0.5+0.j, -0.5+0.j,=C2=A0 0.5+0.j])<br>
<br>
first sample: (1+1j)(0.25) + (1-1j)(0.25) =3D 0.5<br>
second sample: (1+1j)(0.25j) + (1-1j)(-0.25j) =3D -0.5<br>
<br>
so the first sample is just the real component<br>
then again the second sample is just the complex component<br>
it really is two waves, rising at different times, offset by 90 degrees, or=
 such<br>
<br>
(Pdb) p (np.array([0,0.5+1j,0,0.5-1j]) @ create_freq2time(4)).round(3)<br>
array([ 0.25+0.j, -0.5 +0.j, -0.25+0.j,=C2=A0 0.5 +0.j])<br>
<br>
One could think of it as outputting the data in pairs.<br>
It outputs a real component, then a complex component, both in the real dom=
ain.<br>
Because one is offset by 90 degrees, this can provide for the<br>
construction of waves smoothly.<br>
<br>
It may work for the square wave.<br>
<br>
I guess I'll try it.<br>
<br>
1600<br>
<br>
I made a complex square wave. Basically the real and imaginary parts<br>
are juts off by 1/4 .<br>
The forward matrix it produces has an inverse, and the pseudoinverse<br>
passes np.allclose() with it.<br>
The assertion still doesn't pass, but again it should now be a closed s=
ystem.<br>
<br>
1603 I'm looking a little at the real-domain matrix produced for the<br=
>
square wave, and I'm not yet sure about it.<br>
<br>
(Pdb) list<br>
174=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0forward_mat =3D np.linalg.pinv(inverse=
_mat)<br>
175=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if not is_complex:<br>
176=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0# todo: remove test data=
<br>
177=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0time_data =3D np.random.=
random(inverse_mat.shape[1])<br>
178=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0freq_data =3D time_data =
@ forward_mat<br>
179=C2=A0 ->=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0forward_mat =3D np.concate=
nate([<br>
180=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0forward_ma=
t[:,:tail_idx],<br>
181=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0forward_ma=
t[:,tail_idx:neg_start_idx].conj()<br>
182=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0], axis=3D1)<br>
183=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return forward_mat<br>
184<br>
(Pdb) normal_forward_mat =3D np.linalg.pinv(create_freq2time(time_count, fr=
eqs))<br>
(Pdb) p normal_forward_mat[6].round(3)<br>
array([ 1.=C2=A0 =C2=A0+0.j=C2=A0 =C2=A0, -0.707-0.707j, -0.=C2=A0 =C2=A0+1=
.j=C2=A0 =C2=A0,=C2=A0 0.707-0.707j,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0-1.=C2=A0 =C2=A0-0.j=C2=A0 =C2=A0,=C2=A0 0.707+0=
.707j, -0.=C2=A0 =C2=A0-1.j=C2=A0 =C2=A0, -0.707+0.707j,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 1.=C2=A0 =C2=A0-0.j=C2=A0 =C2=A0, -0.707-0.707j=
, -0.=C2=A0 =C2=A0+1.j=C2=A0 =C2=A0,=C2=A0 0.707-0.707j,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0-1.=C2=A0 =C2=A0-0.j=C2=A0 =C2=A0,=C2=A0 0.707+0=
.707j,=C2=A0 0.=C2=A0 =C2=A0-1.j=C2=A0 =C2=A0, -0.707+0.707j])<br>
(Pdb) p forward_mat[6].round(3)<br>
array([-0.5+0.5j,=C2=A0 0.5+0.5j, -0.5-0.5j, -0.5+0.5j,=C2=A0 0.5-0.5j, -0.=
5-0.5j,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 0.5+0.5j,=C2=A0 0.5-0.5j, -0.5+0.5j,=C2=A0 0.5+=
0.5j, -0.5-0.5j, -0.5+0.5j,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 0.5-0.5j, -0.5-0.5j,=C2=A0 0.5+0.5j,=C2=A0 0.5-=
0.5j])<br>
<br>
In the normal dft matrix, the negative frequencies that occupy the<br>
second half, are the reverse-order complex conjugates of the positive<br>
frequencies that occupy the first half.<br>
In the forward_mat here, where the the square wave is being used, this<br>
complex conjugate situation does not hold. It's 1609.<br>
<br>
Basically, the even-numbered indices are conjugates, whereas the odds<br>
are opposites.<br>
<br>
It might be possible this could relate to the evaluation of the square<br>
wave at its discontinuous points.<br>
<br>
With real frequencies, the implication is that there are never<br>
frequencies equal to 0.125, for example. Looking a little further I'm<b=
r>
not immediately discerning a pattern.<br>
<br>
1640<br>
<br>
having trouble developing behaviors and energy and stuff around this next s=
tep.<br>
<br>
i'm looking at inverse_mat and it seems to have a similar issue.<br>
<br>
i'm thinking that the real component of the waveform is not an even<br>
function, and that that is the issue here.<br>
<br>
trying out numbers, it kind of looks like the wavelet is getting<br>
indexed in a way that is rounding negative, rather than toward zero.<br>
that's something i can look into!<br>
<br>
this is what I have:<br>
<br>
SINE =3D lambda x: np.sin(2 * np.pi * x)<br>
SQUARE =3D lambda x: np.floor(x * 2) * 2 - 1<br>
<br>
def complex_wavelet(wavelet, x):<br>
=C2=A0 =C2=A0 return wavelet((x + 0.25) % 1) + wavelet(x % 1) * 1j<br>
<br>
and I'm getting this:<br>
>>> complex_wavelet(SQUARE, -.25)<br>
(-1+1j)<br>
>>> complex_wavelet(SQUARE, .25)<br>
(1-1j)<br>
<br>
the real component should have the same sign for correct behavior.<br>
<br>
other than the cutoff point, it is even:<br>
>>> complex_wavelet(SQUARE, .24)<br>
(-1-1j)<br>
>>> complex_wavelet(SQUARE, -.24)<br>
(-1+1j)<br>
>>> complex_wavelet(SQUARE, .26)<br>
(1-1j)<br>
>>> complex_wavelet(SQUARE, -.26)<br>
(1+1j)<br>
<br>
>>> SINE(0)<br>
0.0<br>
>>> SINE(0.5)<br>
1.2246467991473532e-16<br>
>>> SQUARE(0)<br>
-1.0<br>
>>> SQUARE(0.5)<br>
1.0<br>
<br>
The sine function has 0 and 1/2 equal, whereas the square function<br>
does not. If the square function had 1.0 | x=3D=3D0 or 1.0 | x > 0.5, it=
<br>
would work, but instead it has 1.0 | x >=3D 0.5 .<br>
<br>
The difference stems from floor(x * 2). With the floor function, lower<br>
values are included in the range, and upper values are not.<br>
<br>
I wonder if it would be appropriate to offset things by 0.125 simply<br>
to make the behavior look even when sampled at the points : but this<br>
wouldn't work for denser sampling, of course, which I imagine is<br>
needed.<br>
<br>
1703<br>
I changed SQUARE to (x > 0.5) * 2 - 1, which kinda works because True<br=
>
is treated like 1 and False treated like 0. Assertion still failing.<br>
<br>
Note: if an even function is required for a wavelet to work, it would<br>
make sense to define them as even functions.<br>
<br>
2036<br>
I ended up doing other things. The matrix did look better with the<br>
change. I would like to look at it more.<br>
</blockquote></div>

--0000000000008b04eb05eda124c0--
-------------- next part --------------
MIME-Version: 1.0
Received: by 2002:a05:6358:ee82:b0:dd:2e12:daec with HTTP; Thu, 17 Nov 2022
 01:57:35 -0800 (PST)
In-Reply-To: <CAN3PQpGQhfoX+MDvCrUUXN0QGvFmUjazhNFDL2HZb_kWDAv1Ng at mail.gmail.com>
References: <CALL-=e6aEwRBzhZdUNdA_jtH1UB9xBZHU3W5io03K2ocCVkD_Q at mail.gmail.com>
	<CALL-=e6yNBZ8bcPmzzGG=-p2PyzvYSiVGMk-rVJywBzfgt-FqQ at mail.gmail.com>
	<CALL-=e5jimZU1kd0dJM-MGWE-X=q-DWre0E7GK4QtPjsoxt5vg at mail.gmail.com>
	<CALL-=e4Y4eKu7cdb6ut37B3W6X8+UuTmsdM51rcaXHRackOufg at mail.gmail.com>
	<CALL-=e77V2scy9n5sosuwoSiiN9TB=c5fBoP_CGigLAckgCgHw at mail.gmail.com>
	<CALL-=e6pgnTgC16G98dHkSdix1v5T9RxpL7chSBBOenLBdZo3g at mail.gmail.com>
	<CALL-=e4tjDfBFB18vgBsRw2qsBVeztOZ7MZ2AEin+CMWd0jewQ at mail.gmail.com>
	<CALL-=e63X9qWhYtazCKisAGOYGnAsV6bWo6CwX=POLG6K0fXEA at mail.gmail.com>
	<CALL-=e645LwtMC9BG=TGeqzftmJWss+BEENpvrN3ft6Bwa8xqw at mail.gmail.com>
	<CALL-=e6LVc+8uE7nkN1REWM_+sUWU4yVHR5f41Qpjce8cD9OEw at mail.gmail.com>
	<CALL-=e43A2dWe=E=fz7=e31FJmXErHVjnQgJXua00OiN0Ge+iQ at mail.gmail.com>
	<CALL-=e4nzT4N1xt=uL9GnwTQq-ck8TD87jQ=PBwkguPkxXUNEg at mail.gmail.com>
	<CALL-=e4-VT=vhT1xP0HO+os97CvT98zf-YTpQySM35B7aXTHYw at mail.gmail.com>
	<CALL-=e4kUjxqWU4_H+O7u93+G39z6ha=95oootdKMSd3nevamA at mail.gmail.com>
	<CALL-=e4-DSwry8xS1HmDwOyy1ZGuGOP0MDGpu5Ozonpfkgoc5A at mail.gmail.com>
	<CALL-=e6d2KmyPDaWKU2VL0Gb8cPd1Rsb9mA3c4Qfc80=0P-ERw at mail.gmail.com>
	<CALL-=e6Q2LGyxwvvXiwEU05=fpKaM56n2AWxLfDaKA=wfuKCqQ at mail.gmail.com>
	<CALL-=e65fWYK+P_0VEPfPU2grsGPvFRs8Pe-jFzGLq8RtACJEw at mail.gmail.com>
	<CALL-=e74EjfgbQrhURT9ciQAYLFWFdnrpqtXkKEt6iamAsjxLQ at mail.gmail.com>
	<CALL-=e4XPCqH2qTSb_u_Eej1pzF+z3OAUbVWnD+_orL=aWOf-A at mail.gmail.com>
	<CALL-=e4rjqfQhbYzE8czF+KiNe5mcQaGedhA7JLPwK=YSsGhWA at mail.gmail.com>
	<CALL-=e46_RB1BpHDmgTpKMbKT90XG_05-Lus4bxJBYugCHah8w at mail.gmail.com>
	<CALL-=e4PqweYWKWbwXuNK3t8caVD3NyVbfxMe7YxSQCWUhQD1A at mail.gmail.com>
	<CALL-=e6VWNmnfcavQVuV6nxaitS0BpU469VGGGaKCxmT9Sk21Q at mail.gmail.com>
	<CALL-=e7qCj+zqPBH=OHOUHiMCkqQd+HnAv3nGES9HrqtjEZftg at mail.gmail.com>
	<CALL-=e4Qy20uVDk0dH5e6mdx3G-a9goy1DRKq-iJ-kdkpPrbAw at mail.gmail.com>
	<CALL-=e7zJvA2zmcc=29-63MQMe5CzuwZB_ZoduVo3EjLnrhPLQ at mail.gmail.com>
	<CALL-=e5MqayeT+HWRBHbRP_sbfZZ7aA6fvbV4oop6VbOq2mhpA at mail.gmail.com>
	<CALL-=e4qaVnqGNLfD_NDbBcQiuN=HWxBmWJF+kRLmO8_2xnAYQ at mail.gmail.com>
	<CALL-=e4R3QEZf9WKnGOE6bh5CcGpBezNQyZ4Z6RdA_VALp93HA at mail.gmail.com>
	<CALL-=e7EYPFPfGsfAUFUJmHuwkfq=ytVgmOu9Dq-0ksoprGckg at mail.gmail.com>
	<CALL-=e5SE40=qM4NcsRzuYbu_34KY1SFz-d5npzYYMkxqEcn4w at mail.gmail.com>
	<CALL-=e60+7GMHXTYAXwEJ_H2+V2Eu_uJ=XFOcy91D_SJZ05_iw at mail.gmail.com>
	<CALL-=e6cG0BTr1yNeV3yfvmB3GkVuWhghe67bkJoZWu_P7iDxA at mail.gmail.com>
	<CALL-=e5b4wY-cLjpog847H9GwiZ3=AdjmYCgP9ta85oi-D+1Sg at mail.gmail.com>
	<CALL-=e5Wax=NtP1tTB+NCkbahaPfQHBKV8Pz_0Tfb55rgwZU7A at mail.gmail.com>
	<CALL-=e79Rxf-jpGr6YwCsnBd3wnY_CdPkBzc7XLFrYCP+=4v3Q at mail.gmail.com>
	<CALL-=e6FpvvdoKYaoKTtLO-g2=1CdFEBH_Wkeh-ViiR092nV4g at mail.gmail.com>
	<CALL-=e5yONoyxyNiMGUPWG1BYU-jrhXWj8i8dNh5nkCP3GrZiA at mail.gmail.com>
	<CALL-=e5JBaoG4ewKWp8iyokwmLzvMuq08kAuMNUcY+SmRqm+4g at mail.gmail.com>
	<CALL-=e5Q-GiWXgBKXe4CeXMgQwZreNCVNfOgwj1nZ4pXb367rA at mail.gmail.com>
	<CALL-=e5V=G8vu2giJWg4i+XG51wCQy2PdtbtoOCtLWRBfc+fnw at mail.gmail.com>
	<CALL-=e5RinnAM8=taCXsyiJ0XPXoq9Zt1YJ-a5NLE52+=tgWtw at mail.gmail.com>
	<CALL-=e5uf3eUrgE2s3ytoGdGgbynpDOEiHr8KCW5+6CiLJ-a=A at mail.gmail.com>
	<CALL-=e5kCu-KeH=QyVAdmaEN14tFYtkxWJGfdkj0t=avYou6Aw at mail.gmail.com>
	<CALL-=e6XimNdaV9frkj53+eZ86--AxVUV6uzMeuvZ7dVZqot0Q at mail.gmail.com>
	<CALL-=e7T1qnkxYAnwyh7JF4Ebpn4xhcFfN-9bzgraVSDk1=w3g at mail.gmail.com>
	<CALL-=e6LWO2O-9V5obNYhDzzOatQ43KGkASerRs7WSBzrUzLDQ at mail.gmail.com>
	<CALL-=e5HAc_EJ-1G4bn4AZpwfi=8E4n4_KwHNSbL=-Fm-me3QQ at mail.gmail.com>
	<CALL-=e58O-7zPhZX9EW9w7YbKJ4AZaJuimRBkfsPY-ROcBmFmQ at mail.gmail.com>
	<CALL-=e6ur0c2AXSvGw2w2eeJP1qi131F2s-gJjWAzZm1k39P1w at mail.gmail.com>
	<CALL-=e5kaPFpd_3qg3aDvxjsnwg0XcFc9GvbunFkL5b8fhks_Q at mail.gmail.com>
	<CALL-=e7J_kUa7dCQvmMejv627XsqQejNBK37VfdEzgf5vrPRMQ at mail.gmail.com>
	<CALL-=e4-zXD27KmAb8aseQrFwBBNotLUXFT5-3Dxjg4WO5R2ZA at mail.gmail.com>
	<CALL-=e572Vof+O=yip1g1BPSLq=0Z2KrSsQfpyzFt1FGAJwgtg at mail.gmail.com>
	<CALL-=e4cYnDHqa7+rx+s7BFGkEjzAABXqCY61BXqzgRoEfvQOA at mail.gmail.com>
	<CALL-=e4R8gBTAqkpEJFWwdumP-Ro-Fu-jfRJF1dcuQ61XOsYTA at mail.gmail.com>
	<CALL-=e4Ec2-pfUKcWbRDz-pdnhRKH-5BVL8qryQdC-FSnVTc+w at mail.gmail.com>
	<CALL-=e7KB5yRNUvw4XUPPB4jGmHP11E+u2Lzv-zWZdKn7hcrJQ at mail.gmail.com>
	<CALL-=e51YTRAmM3u+FmCcPx4=waKn4zNOixe7519vDLo2xVXuw at mail.gmail.com>
	<CALL-=e5o2QfsAG++gsBRjqYZPaP=PezK6AuL58d9ALXM7a+=1Q at mail.gmail.com>
	<CALL-=e4KobbPLGSTKyz4MssTj2ESuzOmOWEkZHDAvsZZECxJPA at mail.gmail.com>
	<CALL-=e5rk3P6NPUnEgMQxy5+_WBf9UXEpza-P8eZT1CemxSt+g at mail.gmail.com>
	<CALL-=e5QDgRD8QiO5pXwQK_=zVN3D4_RXGzcY72BBZfriWX0Zg at mail.gmail.com>
	<CALL-=e7PztZtSciqVOtWcu1JSjRtnFLUU52JdyBect50qVXCSQ at mail.gmail.com>
	<CALL-=e7Wkpv9uonFk24DrbivOugrwipVdYmNXGYrNGhY4pAUSA at mail.gmail.com>
	<CALL-=e6zN--zrEv4QYexMADp5cbpGYwFwCS0X1pEWFsUfjiVUQ at mail.gmail.com>
	<CALL-=e56=vM77sBTO3t-wosx2oTD7r61jBH_zHYGAePGRmTNaQ at mail.gmail.com>
	<CALL-=e5xnGoxqpTPbM08YTCtkPUqEJNM-CGYbv_Z4jrFWFweHA at mail.gmail.com>
	<CALL-=e6dWx+7XNZnWZsNb3H2Aq8Rzdv2SyH3-84nnbdws1__bA at mail.gmail.com>
	<CALL-=e4Xp8mMLMGSV02Ac28ogVLKwVmjgbc=k0Krf8J=Q_WcxA at mail.gmail.com>
	<CALL-=e62uyMjJk0mb4_o-g18ZYNvMuKL28J+kr7Q=J7=3R38uQ at mail.gmail.com>
	<CALL-=e58G1YH3AgZZuzhH2gJYQWApYaJDXzuxoeDVxda0Vi5Eg at mail.gmail.com>
	<CALL-=e7MUaqVGKe1WYKr-nDtkM4S1PJU6mrH1iCihFEYo0OAyQ at mail.gmail.com>
	<CALL-=e4NRN=rj-fqkdS46PA=2wE_hU5-SiP5fv+-Abe1GXA1Pw at mail.gmail.com>
	<CALL-=e6QXyuAiV+VYK1rnPnB-EGKjQFE36Kny6yT827E8Hc9Gw at mail.gmail.com>
	<CALL-=e4=iww6BNsS2yPAwFfivGL=tdJt4qLijdHYsVsjQUiU4w at mail.gmail.com>
	<CALL-=e7824=d6jf9sVZ4G=bnuFSw7UQ6Y-=M8Qj8QSOTp2ReXw at mail.gmail.com>
	<CALL-=e62PNou-pUE0yLm4HsnTRCYWO=AqHKAYO1sCFyv9ZZ9aw at mail.gmail.com>
	<CALL-=e4dKBPG4+n6iKXvWqrDOYtfLK+OccQuQUxVyQ6fq6bo9g at mail.gmail.com>
	<CALL-=e67D_5zemoj2xDNyAcezUj8sZdc-HyPDv5snmH75D=Q8Q at mail.gmail.com>
	<CALL-=e5NrVD_PRiVaJKuA+v=KvC=6eeutU02BO2CamSR=r+u_w at mail.gmail.com>
	<CALL-=e6me6W9OGeYvoEZwWBqjHcyCX-NyZzMO2riZ5J3NB3eUg at mail.gmail.com>
	<CALL-=e4oJhnEtwoME51yDTvUdHbwHJYfOwhzKWqFhnLpszBPdA at mail.gmail.com>
	<CALL-=e6CGugCjj+uaCsB_SqTmPgpAqJj-K6CUxG2oAaTSanw0Q at mail.gmail.com>
	<CALL-=e4B6XQ6QPYVfdcM6KxC=rjO6kgrdxzHiD4Xi4b6vp5VCA at mail.gmail.com>
	<CALL-=e64bghzUOkPh-RJf=SLk-6a68hwEbj94uVOUZStUjUq0Q at mail.gmail.com>
	<CALL-=e7GiqQJZNoJ2heObeo79uRnt5TycEAa_V52EuE-WEkFtA at mail.gmail.com>
	<CALL-=e4eXTnXkv3JX1_R4ohOCdjsLfX_KicYmGQc6i3Git3QDQ at mail.gmail.com>
	<CALL-=e7dCOx0jCzz6V=EKtgJYnnmgYCaYn6prHNSeF-KE=qF3g at mail.gmail.com>
	<CALL-=e6HBq-FeUdcK8hJg0t24z3qvZ+NOmWE79R94hyCT1Te-Q at mail.gmail.com>
	<CALL-=e4jH-MAJDgEJVa5Zkzs8P2k4u7oUzq34k8eYvPEuz9O0g at mail.gmail.com>
	<CALL-=e6ChztL3JXg7_ZZFF7cmmZmXdexGuRDAdEZS3pVNcbB6g at mail.gmail.com>
	<CALL-=e6huNYE+tROw4=ox4JX2zoYfY+cO7Yv-aPbtnYVvZ7vEQ at mail.gmail.com>
	<CALL-=e7VwCc_VoGAHfJ_CYKQV4h=BOKP8+go1U0=8QhpRxPRSQ at mail.gmail.com>
	<CALL-=e5RKf+Ut1=WTbg8w=99Dz_3GqyLgNEJ_2JB-jt0Oxe+PA at mail.gmail.com>
	<CALL-=e74DBhpm+ou6ZbH-ONO0VX__rK7OLEgyF4jap=N8G1bHg at mail.gmail.com>
	<CALL-=e61SFtUEY45GZczY0-yQ=O2vrrcCPNcEbrRA2tNpBqXXw at mail.gmail.com>
	<CALL-=e7M5gpt8cCC1Zgp9JWk+nsuBsq7YKV9ce9BftSvToWc=g at mail.gmail.com>
	<CAN3PQpGQhfoX+MDvCrUUXN0QGvFmUjazhNFDL2HZb_kWDAv1Ng at mail.gmail.com>
Date: Thu, 17 Nov 2022 04:57:35 -0500
Delivered-To: gmkarl at gmail.com
Message-ID: <CALL-=e7yktWSFiTAiEuS9Egs5sCWYUuncwJJqiq2dmv9+NJVNg at mail.gmail.com>
Subject: Re: [ot][spam][random][crazy][random][crazy]
From: "Undescribed Horrific Abuse, One Victim & Survivor of Many" <gmkarl at gmail.com>
To: ilsa <ilsa.bartlett at gmail.com>
Content-Type: text/plain; charset="UTF-8"

Hi Ilsa,

I noticed and was surprised that this is a personal rather than public
email from you.

When you say "thanks", that is a phrase that resonates with me,
although I'm not sure what you are engaging here, that you replied to
this email specifically.

I websearched for your name and found an experienced and wise-sounding
Buddhist in their 70s; is this you?

My work below on these fourier matrices is something I've struggled to
engage for a long time. It's very slow because of my struggles, but
it's a big accomplishment for me to continue it despite them.

Be well,
Karl

On 11/16/22, ilsa <ilsa.bartlett at gmail.com> wrote:
> Thanks
>
> On Wed, Nov 16, 2022, 5:38 PM Undescribed Horrific Abuse, One Victim &
> Survivor of Many <gmkarl at gmail.com> wrote:
>
>> according to numpy my square wave matrix is singular.
>>
>> something for me to think about!
>>
>> i'm guessing a big issue is that my wavelet function doesn't have a
>> way to shift phase.


More information about the cypherpunks mailing list